Я пытаюсь понять, где этот недостаток. Использует ли система SML-модуль только зависимые типы, аналогичные тому, как Idris расширил систему типа Haskell, или происходит ли больше, чем просто возможность добавления зависимых типов? Информация о системе модуля SML в существующих интернет-статьях была либо трудно найти, либо трудно понять для меня.
** Изменить ** Существовала некоторая путаница в том, что я действительно получаю с этим вопросом, и путаница, похоже, связана с моей путаницей в отношении модуля ML Module (я думаю, из-за того, что я понял Функторы на пути Haskell). Зависимые типы предлагались в качестве примера того, что может быть разным между системами типа 2, но оказалось, что это был плохой пример, поскольку ни одна система не поддерживает такую вещь (по крайней мере, не напрямую).
Основная цель этого вопроса - определить различия в выражении понятий между системами типа ML и Haskell. Какие абстракции/понятия не могут быть представлены в одном, который может быть в другом? Почему кто-то утверждает, что система типов ML более современна/мощна, чем Haskell, или наоборот. Другой способ подумать об этом - это то, где отсутствует система одного типа, где нет другого?
Причина, по которой я заинтересован в том, чтобы знать это, связан с моим интересом к архитектуре систем программного обеспечения и тому, как различные системы типов упрощают или затрудняют модульность и расширяемость программного обеспечения. Я не впечатлен системами объектно-ориентированного типа от императивных языков, поэтому теперь я разветвляюсь и изучаю те, которые предлагают ML и Haskell, поскольку они меня интересуют первые.