Es bien sabido que las clases de tipo Haskell y los módulos ML-style ofrecen diferentes mecanismos para especificar las interfaces . Son (posiblemente) equivalentes en poder, pero en la práctica cada uno tiene sus propios beneficios y desventajas.¿Cuáles son las principales dificultades teóricas para agregar módulos de ML a Haskell?
Como soy un poco inclusista en lo que respecta a las características del lenguaje, mi pregunta es esta: ¿Cuáles son las principales dificultades teóricas con la adición de módulos ML-style a Haskell? Estoy interesado en las respuestas a lo largo de las siguientes líneas:
Qué tipo de características del sistema existentes interactúan poco con módulos de estilo ML? (Un ejemplo de interacción deficiente es GADT y dependencias funcionales, ¡aunque las fundeps son técnicamente equivalentes a los tipos asociados!)
¿Qué cosas se deben abandonar en el compilador para compilar módulos ML-style?
¿Cómo interactúan los módulos de estilo ML con la inferencia de tipos?
Lectura relacionada:
Gracias por preguntar esto.Me encantan los funtores de ML, es lo único que echo de menos en Haskell. – luqui
¿Por qué querrías dependencias funcionales en un sistema de módulos? Por lo que puedo decir que todas las dependencias funcionales hacen es inferencia de control/instanciación implícita, que los módulos realmente no intentan hacer. –