次のコードで「GHCステージ制限」が発生する理由がわかりませんでした。
import Language.Haskell.TH
rules :: [ExpQ]
rules = [ [| \a -> a |], [| \_ -> 1 |] ]
findTransforms :: Int -> [ExpQ] -> Bool
findTransforms _ [] = False
findTransforms e (r:rs) = if ($r e) == 1 then True else findTransforms e rs
(コードが何も役に立たない場合でも心配しないでください-明確にするために難読化された最小限の例が抽出されています)。
スプライスされたコードから関数を呼び出すことはありません。なぜステージ制限?
EDIT1:さらに簡単なコード例を提供するために編集