> Интересно, а есть ли смысл мутить какой-нить режим, который нужно будет самому
> руками активировать и в котором нужно будет самому руками всё типизировать? Зачем? Давным давно (с 78-го года) есть метод выведения типов в выражении. То есть, в строго-типизированном языке с выводом типов вы указываете тип только в одном месте, а всё остальное выводится компилятором. Вот, например, код на OCaml:
let sqr x = x *. x;;
Printf.printf "%f\n" (sqr 2.0);;
Компилятор уже в функции sqr понимает, что x - вещественное число, т.к. используется вещественный оператор. То есть, если за определением написать
let z = sqr "Привет";;
то на стадии компиляции произойдёт ошибка. При этом, заметьте, нигде названия типа float не упомянуто. Достаточно уже того, что *. умножает float'ы и 2.0 - это float.