haskell types type-conversion template-haskell

haskell - ¿Es posible comparar dos tipos, si uno es asignable del otro?



types type-conversion (1)

Como dice jberryman en los comentarios, puedes generar código que obligue al buscador de tipos a unificar los dos tipos. Sin embargo, no puede engancharse al tipógrafo para verificar que usted mismo se bifurca en el resultado. Simplemente no tiene el acceso adecuado al entorno completo del buscador de tipos en la etapa de expansión TH.

Digamos que tengo dos types :

t1 <- [t| (Functor f) => (a -> b) -> f a -> f b |] t2 <- [t| (Int -> Char) -> [Int] -> [Char] |]

¿Es posible determinar en la Plantilla Haskell que una expresión de t1 también puede ser de t2 ? (Sin implementar yo mismo la unificación de tipos).