【发布时间】:2014-08-30 08:16:49
【问题描述】:
假设我有两个types:
t1 <- [t| (Functor f) => (a -> b) -> f a -> f b |]
t2 <- [t| (Int -> Char) -> [Int] -> [Char] |]
是否可以在 Template Haskell 中确定t1 的表达式也可以是t2? (我自己没有实现类型统一。)
【问题讨论】:
-
如果有可能你必须使用新的类型化模板haskell的东西,但我对此一无所知。您可能可以通过生成一些死代码来进行某种编译时断言,例如:
a = (undefined :: (Functor f) => (a -> b) -> f a -> f b); b :: (Int -> Char) -> [Int] -> [Char]; b = a
标签: haskell types type-conversion template-haskell