lambda-ast-0.0.12: src/Language/Lambda/Untyped/Syntax.hs
{-# LANGUAGE DeriveDataTypeable #-}
{- | An Untyped Lambda Calculus AST -}
module Language.Lambda.Untyped.Syntax where
import Data.Data
-- | 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, Data, Typeable)
-- | A common symbol type choice
type Sym = String
-- | A common AST
type Expr = GExpr Sym