是否可以比较两种类型,如果一种可以从另一种分配?

时间:2014-07-09 10:36:26

标签: haskell types type-conversion template-haskell

我们说我有两个types

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

是否可以在Template Haskell中确定t1的表达式也可以是t2? (我自己没有实现类型统一。)

1 个答案:

答案 0 :(得分:1)

正如jberryman在评论中所说,你可以生成代码,迫使typechecker统一这两种类型。但是,你无法锁定类型检查器来实际检查自己并分支结果。在TH扩展阶段,您根本无法正确访问完整的类型检查器环境。