検討:
data Expr a
= V a
| Lit Integer
| Let (Expr a) (Expr (Maybe a))
deriving (Eq,Show)
コンストラクターを使用Let
すると、式 (最初の引数) をバインドして、2 番目の ( V Nothing
refer to it) で参照することができます。
私が何かをするなら
Let (Lit 3) $ Let (Lit 1) $ Var Nothing
Lit
はどれをVar Nothing
指しますか?さらに、それを一度に複数のバインディングに一般化したいのですが、その方法がわかりません。私は優れた Edward Kmett製本パッケージのいくつかの例に従いましたが、今では混乱して途方に暮れています。