Hasta donde sé, una función de Haskell con restricciones de clases de tipo se compila internamente en una función con argumentos adicionales que reciben diccionarios con las implementaciones necesarias de cada clase de tipo en particular.
- ¿Hay alguna otra posibilidad de cómo compilar clases de tipos?
- Si es así, ¿cuáles son sus (des) ventajas?
- ¿Y qué compiladores los usan?
Respuestas:
JHC utiliza un enfoque diferente. El lenguaje intermedio del compilador es un cálculo lambda de tipo dependiente donde no hay distinción entre tipos y valores. Por lo tanto, JHC puede realizar un análisis de caso sobre el parámetro de tipo de una función y llamar directamente a la función sobrecargada correcta.
El sitio web de JHC profundiza en la implementación, así como sus ventajas sobre la implementación estándar de aprobación de diccionario.
fuente