{- | An Untyped Lambda Calculus AST -} module Language.Lambda.AST where -- | A polymorphic version of the AST to allow different symbol types data GExpr a = Var a | App (GExpr a) (GExpr a) | Lam a (GExpr a) deriving(Show, Eq) -- | A common symbol type choice type Sym = String -- | A common AST type Expr = GExpr Sym