pieuvre/structs.ml

17 lines
409 B
OCaml

(* Variables des λ-termes *)
type var = string;;
(* Variable des types simples *)
type tvar = string;;
(* Type complexe *)
type ty = TSimple of tvar | TImpl of ty * ty | TFalse;;
(* λ-terme *)
type lam = LFun of var * ty * lam | LApp of lam * lam | LVar of var | LExf of lam * ty;;
(* Environnement de typage *)
type gam = (tvar * ty) list;;
(* λ-terme avec des trous *)
type lho = (lam list) -> lam;;