Module Typeinf.Explicit

module Explicit: sig .. end
The abstract syntax of the explicitly-typed syntax and a pretty-printer.

type metavar = int * string 
type typ = Typeinf_syntax.Explicit.typ = 
| TMetavar of metavar
| TInt
| TBool
| TFun of typ * typ
| TPair of typ * typ
| TList of typ
type exp = Typeinf_syntax.Explicit.exp = 
| Const of Typeinf.const
| Op2 of Typeinf.op2 * exp * exp
| If of exp * exp * exp
| Id of Typeinf.id
| Let of Typeinf.id * exp * exp
| Fun of Typeinf.id * typ * exp
| Fix of Typeinf.id * typ * exp
| App of exp * exp
| Empty of typ
| Cons of exp * exp
| Head of exp
| Tail of exp
| IsEmpty of exp
| Pair of exp * exp
| ProjL of exp
| ProjR of exp
val string_of_exp : exp -> string
Produces a string that represents the expression.
val print_exp : exp -> unit
Prints the expression.
val string_of_typ : typ -> string
Produces a string that represents the type.
val print_typ : typ -> unit
Prints the type.