나는이 간단한 Expr AST를 가지고 있으며 쉽게 String으로 변환 할 수 있습니다. import Prelude hiding (Foldable)
import qualified Prelude
import Data.Foldable as F
import Data.Functor.Foldable
import Data.Monoid
import Contr
나는 catamorphism의 일반화 된 재귀 스키마를 '발명했습니다'. {-# LANGUAGE DeriveFunctor #-}
import qualified Data.Map as M
newtype Fix f = Fix { unFix :: f (Fix f) }
cata :: Functor f => (f b -> b) -> Fix f -> b
ca