Cómo depurar programas de nivel de tipo

Estoy tratando de hacer una programación a nivel de tipo hoopy, y simplemente no funciona. Me estoy arrancando el pelo tratando de entender por qué el GHC no logra inferir las firmas que quiero.

¿Hay alguna manera de hacer GHCDime que esta haciendo

Lo intenté-ddump-tc, que solo imprime las firmas de tipo finales. (Sí, están equivocados. Gracias, ya lo sabía).

También intenté-ddump-tc-trace, que arroja ~ 70KB de galimatías ininteligibles. (En particular, no puedo ver ningún identificador escrito por el usuario mencionadoen cualquier sitio.)

Mi código estan cerca para trabajar, pero de alguna manera sigue apareciendo una variable de tipo adicional. Por alguna razón, GHC no puede ver que esta variable deba estar completamente determinada. De hecho, si yoa mano escriba la firma tipo cinco millas, GHC la acepta felizmente. Así que claramente me falta una restricción en alguna parte ...¿¡¿pero donde?!? > _ <

Respuestas a la pregunta(1)

Su respuesta a la pregunta