Let's say I have two types:
t1 <- [t| (Functor f) => (a -> b) -> f a -> f b |]
t2 <- [t| (Int -> Char) -> [Int] -> [Char] |]
Is it possible to determine in Template Haskell that an expression of t1
can also be of t2
? (Without implementing type unification myself.)