如果一种类型可以从另一种类型中赋值,是否可以比较两种类型?



假设我有两个类型:

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

是否有可能在模板Haskell中确定t1的表达式也可以是t2的表达式?(不需要自己实现类型统一)

正如jberryman在注释中所说,您可以生成强制类型检查器统一这两种类型的代码。但是,您不能锁定到类型检查器中亲自检查并对结果进行分支。在TH展开阶段,您无法正确访问完整的类型检查器环境。

相关内容

  • 没有找到相关文章