Template Haskell compile error when calling with different parameters
问题 Why does the following fail to compile (on GHC 7.4.2)? {-# LANGUAGE TemplateHaskell #-} f1 = $([| id |]) main = print $ (f1 (42 :: Int), f1 (42 :: Integer)) Note that the following compiles fine: {-# LANGUAGE TemplateHaskell #-} f1 = id -- Don't use template Haskell here. main = print $ (f1 (42 :: Int), f1 (42 :: Integer)) Is there a language extension I can use to make the former compile? I know the Template Haskell seems silly in this example, but it's a simplified version of a more complex