abstrakt:
data Exp = I S.Id -- Bezeichner (Variable) | Abstraction { formal :: S.Id , body :: Exp } | Application { rator :: Exp , rand :: Exp }
konkret:
(lam g (lam a (lam b (app (app g b) a))))
(nach Turbak, Gifford: Design Concepts in Programming Languages)