exception Pattern of string exception NonExhaustive of Types.descr exception Constraint of Types.descr * Types.descr * string val compile_regexp : Ast.regexp -> Ast.ppat -> Ast.ppat val register_global_types : (string * Ast.ppat) list -> unit (* the global environment is untouched if the function fails *) val typ : Ast.ppat -> Typed.ttyp val pat : Ast.ppat -> Typed.tpat module Fv : Set.S with type elt = string module Env : Map.S with type key = string val expr: Ast.pexpr -> Fv.t * Typed.texpr val compute_type: Types.descr Env.t -> Typed.texpr -> Types.descr