高次ラムダ計算のエンコーディングでHaskell関数を持ち上げたい。これはOlegのTyped Tagless Finalのエンコーディングとほぼ同じです。 class Lam r where
emb :: a -> r a
(^) :: r (r a -> r a) -> (r a -> r a)
lam :: (r a -> r a) -> r (r a -> r
ExceptT a (StateT A M)、具体的なタイプはA、モナドMとし、それらを新しいカスタムモナドにまとめます。 まず私はStateT A Mその他のコンテキストで頻繁に表示されますので、私はそれだけではモナドM1で、その後M2へExceptT a M1をラップすることをラップするのがベストだろうことを決めたことを確認しました。 所望の特性は、(それがMyMonadClass呼ばれると仮