module test import StdEnv, StdMaybe import Data.Functor :: Expr v = Lit Int | Add (Expr v) (Expr v) | E.e: Ext (e v) & eval e v :: Fix f = Fix (f (Fix f)) class eval t v where eval :: (t v) -> Int instance eval Expr v where eval (Lit i) = i Start = eval t t :: Expr (Fix Expr) t = Lit 42