В чем разница в возможностях между модульной системой SML и системой Haskell Type и Typeclass?
Я пытаюсь понять, где этот недостаток. Использует ли система SML-модуль только зависимые типы, аналогичные тому, как Idris расширил систему типа Haskell, или происходит ли больше, чем просто возможность добавления зависимых типов? Информация о системе модуля SML в существующих интернет-статьях была либо трудно найти, либо трудно понять для меня.
** Изменить **
Существовала некоторая путаница в том, что я действительно получаю с этим вопросом, и путаница, похоже, связана с моей путаницей в отношении модуля ML Module (я думаю, из-за того, что я понял Функторы на пути Haskell). Зависимые типы предлагались в качестве примера того, что может быть разным между системами типа 2, но оказалось, что это был плохой пример, поскольку ни одна система не поддерживает такую вещь (по крайней мере, не напрямую).
Основная цель этого вопроса - определить различия в выражении понятий между системами типа ML и Haskell. Какие абстракции/понятия не могут быть представлены в одном, который может быть в другом? Почему кто-то утверждает, что система типов ML более современна/мощна, чем Haskell, или наоборот. Другой способ подумать об этом - это то, где отсутствует система одного типа, где нет другого?
Причина, по которой я заинтересован в том, чтобы знать это, связан с моим интересом к архитектуре систем программного обеспечения и тому, как различные системы типов упрощают или затрудняют модульность и расширяемость программного обеспечения. Я не впечатлен системами объектно-ориентированного типа от императивных языков, поэтому теперь я разветвляюсь и изучаю те, которые предлагают ML и Haskell, поскольку они меня интересуют первые.
Ответы
Ответ 1
limp_chimp ответил на мой вопрос, предоставив статью, доступную в Интернете, которая дает довольно подробное сравнение между системами типов Haskell и ML с примерами.
http://www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf
Обновление
Документ перешел по этой ссылке:
https://www.cs.cmu.edu/~rwh/papers/mtc/short.pdf