Volviendo al menos a finales de la década de 1990 ha habido personas que desean la integración de restricted monads en Haskell de manera amistosa.¿Cuál es el estado actual de las mónadas restringidas?
Por ejemplo, sin mónadas restringidas no se puede hacer una mónada eficiente de Set
, Map
o probability distributions. Aquí hay un SO question de hace unos años donde alguien más se enfrentó a este problema.
Hay varias soluciones que la gente ha llegado con, entre ellos:
Creación de un new type class para cada posible restricción.
Usando Template Haskell.
Usando Constraint Kinds.
Ninguno de estos enfoques parece ser "canónico" sin embargo. Encontré un comentario de Don Stewart en this blog post, en 2007, donde insinuaba que estábamos "bastante cerca" de tener mónadas restringidas con Indexed types.
¿Cuál es el estado actual? ¿Hay ahora una forma "canónica" de hacer mónadas restringidas? ¿O aún vivimos con soluciones temporales?
Creo que con los tipos de restricciones es tan canónico como es posible, son un poco demasiado nuevos como para ser la solución más común hasta el momento. – leftaroundabout