"Также все константы, переменные и операции должны быть явно ассоциированы с некоторым типом. Тогда ошибки типов будут легко выявляться, информация, необходимая для проверки типов, может быть сделана строго локальной, и ошибки типов не могут возникнуть в ранее проверенных частях. Последние два условия являются существенными предпосылками для раздельной компиляции (1.1.2).
Всегда считал golang кривым)))
Илья, спасибо за перевод.
Шиперски, смотрю, не зря здесь столь часто упоминаем.
Очень гладкий перевод и отличный акцент на том, что базовый тип должен сужаться в подтипах, а не наоборот, иначе статическая проверка невозможна. Это в продолжение давешней приватной беседы с коллегами по Оборону в защиту разделения понятия "литера" и "символ", и дальнейшее разделение "символ" на "ключевое слово", "целое", "вещественное" и "сущность".  Ну, и пример с непроверяемостью при делении на ноль тоже приятен)) Тема про модульность не совсем раскрыта, имхо. Но, я так подозревают, что и цели такой у Шиперски в этой книге не стояло))

Хотелось бы верить, что сейчас Шиперски кусает локти в МС и раскаивается за то, что погнался за длинным рублём))