hobbits-1.0: A library for canonically representing terms with binding

PortabilityGHC
Stabilityexperimental
Maintaineremw4@rice.edu

Data.Binding.Hobbits.Examples.LambdaLifting.Terms

Description

 

Documentation

data L a Source

data D a Source

data Term whereSource

Constructors

Var :: Name (L a) -> Term a 
Lam :: Binding (L b) (Term a) -> Term (b -> a) 
App :: Term (b -> a) -> Term b -> Term a 

Instances

Show (Term a) 

lam :: (Term a -> Term b) -> Term (a -> b)Source

data DTerm whereSource

Constructors

TVar :: Name (L a) -> DTerm a 
TDVar :: Name (D a) -> DTerm a 
TApp :: DTerm (a -> b) -> DTerm a -> DTerm b 

Instances

Show (DTerm a) 

data Decl whereSource

Constructors

Decl_One :: Binding (L a) (DTerm b) -> Decl (a -> b) 
Decl_Cons :: Binding (L a) (Decl b) -> Decl (a -> b) 

data Decls whereSource

Constructors

Decls_Base :: DTerm a -> Decls a 
Decls_Cons :: Decl b -> Binding (D b) (Decls a) -> Decls a 

Instances

Show (Decls a)