Статическая типизация с мощным автовыводом типов хороша, но бывают приколы, что типы с одинаковым контентом/именами, определенные в одном модуле, на который ссылаются из другого модуля-берется последний, определенный в модуле, на который ссылаются. Понятно, почему, но нюанс для меня был неожиданный, думал что ругань будет компилера. Про сокрытие имени парамов в функциях в курсе, но в фарше и для типов оказывается похожее поведение, когда последний тип скрывает вышележащие, что для меня неожиданность.