haskell module sml type-systems

¿Cuál es la diferencia de capacidad entre el sistema de módulos SML y el sistema Tipo y clase de clase de Haskell?



module type-systems (1)

limp_chimp respondió mi pregunta proporcionando un documento disponible en la web que ofrece una comparación bastante detallada entre los sistemas de tipo Haskell y ML con ejemplos.

http://www.cse.unsw.edu.au/~chak/papers/modules-classes.pdf

Estoy tratando de entender dónde está el defecto aquí. ¿El sistema del Módulo SML simplemente proporciona tipos dependientes, de manera similar a como Idris extendió el sistema de tipo Haskell, o hay más cosas en marcha además de la capacidad de adición de tipos dependientes? La información sobre el sistema del Módulo SML en artículos de Internet existentes ha sido difícil de encontrar o difícil de entender para mí.

** Editar ** Hubo cierta confusión acerca de a lo que me refería con esta pregunta, y la confusión parece provenir de mi confusión sobre el sistema ML Module (creo que debido al hecho de que entendí Functors de la manera Haskell ) Los tipos dependientes se ofrecieron como un ejemplo de lo que podría ser diferente entre los dos sistemas de tipo, pero resultó ser un mal ejemplo, ya que ninguno de los sistemas admite tal cosa (al menos no directamente).

El objetivo principal de esta pregunta es para mí determinar las diferencias en la expresión de conceptos entre los sistemas de tipo ML y Haskell. ¿Qué abstracciones / conceptos no pueden representarse en uno que pueda estar en otro? ¿Por qué alguien afirmaría que el sistema de tipos de ML es más moderno / poderoso que el de Haskell, o viceversa? Otra forma de pensar en esto es ¿dónde falta un tipo de sistema donde el otro no?

La razón por la que estoy interesado en saber esto es debido a mi interés en la arquitectura de sistemas de software y cómo los diferentes tipos de sistemas hacen que la modularidad y la extensibilidad del software sean más fáciles o más difíciles. No me han impresionado los sistemas de tipo orientado a objetos de los idiomas imperativos, así que ahora estoy diversificando y estudiando los que ML y Haskell ofrecen, ya que son los primeros que me interesaron.