我们说我有两个types:
t1 <- [t| (Functor f) => (a -> b) -> f a -> f b |]
t2 <- [t| (Int -> Char) -> [Int] -> [Char] |]
是否可以在Template Haskell中确定t1
的表达式也可以是t2
? (我自己没有实现类型统一。)
答案 0 :(得分:1)
正如jberryman在评论中所说,你可以生成代码,迫使typechecker统一这两种类型。但是,你无法锁定类型检查器来实际检查自己并分支结果。在TH扩展阶段,您根本无法正确访问完整的类型检查器环境。