以下が(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 が必要です。