Sé que Haskell ya tiene la capacidad de parametrizar un tipo sobre otro tipo (similar a la programación de plantillas en C ++), pero me pregunto si Haskell también puede parametrizar un tipo sobre valores, si admite tipos dependientes. Con los tipos dependientes, puede tener un tipo parametrizado sobre enteros, por ejemplo, vectores de tamaño n, matrices de tamaño n × m, etc.
¿Si no, porque no? ¿Y hay alguna posibilidad de que sea compatible en el futuro?
Para ampliar un poco lo que Ptharien's Flame explicó muy bien sobre el estado actual, y GHC Haskell parece estar avanzando en la dirección de los tipos dependientes (al tiempo que preserva la separación de fases) con cada versión.
Entonces, por ejemplo, en ICFP 2013 este septiembre, se debe presentar un documento sobre la próxima fase de este proceso, "Hacia Haskell tipeado de manera dependiente: Sistema FC con igualdad amable" , sobre el colapso de los niveles de tipo y tipo. Como se anunció para ser el plan hace unos 3 años .
E incluso menciona el siguiente paso: "También somos conscientes de que la próxima disertación de Adam Gundry incluirá tipos Π en una versión de System FC y también queremos que esta función esté disponible en el idioma de origen. (Comunicación personal)"
fuente
Haskell ha tratado tradicionalmente de fingirlo, pero el resultado final es un sistema de tipos mucho más grande y aparentemente repetitivo. ¡Pero esto podría cambiar pronto! Ver:
fuente