Здравствуйте, VladD2, Вы писали:
VD>Это относится к системе типов Хаскеля. Точнее примитивности системы Хинли-Миллера. Она конечно позволяет довольно ээфективно выводить типы, но страдает достадными ограничениями вроде невозможности перегрузки функций по имени. Например, мы не можем определить свойство (метод, поле, функцию) "x" у типа Point и скажем у типа Point3D. Разруливание на уровне модулей не катит, так как оба типа данных могут понадобиться в одном коде. Посему фукнции начинают вбирать в себя префиксы вроде pointX и point3dX. Сто лично мне очень не наравится. И вообще, я привык к "излишествам" рожденным С++: перегрузка, неявные приведения типов, объекты...
Вы с какой Луны свалились? Сегодня говорить о системе Хиндли-Милнера в применении к Хаскеллу — все равно, что уподоблять, к примеру, Лаурин-Клемент 1904 года Макларену MP4-21.
В GHC — а это, фактически, референсный компилятор Хаскелла — давно уже есть:
1. Multiparameter typeclasses + functional dependencies
2. GADTs
Недавно GHC был переведен на system Fc, что позволило реализовать еще и type-indexed data types и устаканить все сложные взаимодействия между упомянутыми возможностями.
VD>Ну, мы уже наблюдали как Хаскель сливает Немерлу
.
Немерл ... мухаха. Детский лепет.