module LambdaCalculus; LambdaTy : Type -> Type := Lambda; AppTy : Type -> Type := App; type Expr (V : Type) := | var : V -> Expr V | lam : LambdaTy V -> Expr V | app : AppTy V -> Expr V; type Lambda (V : Type) := mkLambda : Expr V -> Lambda V; type App (V : Type) := mkApp : Expr V -> Expr V -> App V;