为什么以下编译失败(在 GHC 7.4.2 上)?
{-# LANGUAGE TemplateHaskell #-}
f1 = $([| id |])
main = print $ (f1 (42 :: Int), f1 (42 :: Integer))
请注意,以下编译正常:
{-# LANGUAGE TemplateHaskell #-}
f1 = id -- Don't use template Haskell here.
main = print $ (f1 (42 :: Int), f1 (42 :: Integer))
有没有我可以用来编译前者的语言扩展?
我知道 Template Haskell 在这个例子中看起来很傻,但它是一个更复杂问题的简化版本,它需要 Template Haskell 处理任意大小的元组。