Module Type

module Type: sig .. end

type name = string 
type qname = name list 
module NameMap: Map.S  with type key = string
module NameSet: Set.S  with type elt = string
type param = name * [ `Minus | `Plus ] option 
type decl = name * param list * rhs * constraint_ list * bool 
type rhs = [ `Expr of expr
| `Fresh of expr option * repr * [ `Private | `Public ]
| `Nothing
| `Variant of variant * [ `Private | `Public ] ]
type repr = 
| Sum of summand list
| GSum of name * gsummand list
| Record of field list
type field = name * poly_expr * [ `Immutable | `Mutable ] 
type summand = name * expr list 
type gsummand = name * expr list * expr list 
type constraint_ = expr * expr 
type expr = [ `Class of [ `NYI ]
| `Constr of qname * expr list
| `Function of expr * expr
| `GParam of param * expr
| `Label of [ `NonOptional | `Optional ] * name * expr * expr
| `Object of [ `NYI ]
| `Param of param
| `Tuple of expr list ]
type poly_expr = param list * expr 
type variant = [ `Eq | `Gt | `Lt ] * tagspec list 
type tagspec = 
| Tag of name * expr list
| Extends of expr
module ParamSet: Set.S  with type elt = param
module ParamMap: Map.S  with type key = param
module ExprSet: Set.S  with type elt = expr
module ExprMap: Map.S  with type key = expr
module ESet: Set.S  with type elt = name * expr list
module EMap: Map.S  with type key = name * expr list
val free_tvars : expr -> ParamSet.t
val contains_tvars : expr -> bool
val contains_tvars_decl : decl -> bool
type subst = expr NameMap.t 
val build_subst : (name * expr) list -> subst
val substitute_decl : subst -> decl -> decl
val substitute_expr : subst -> expr -> expr
val substitute_rhs : subst -> rhs -> rhs
val substitute_constraint : subst -> constraint_ -> constraint_
val rename_rhs : name NameMap.t -> rhs -> rhs
val rename_constraint : name NameMap.t -> constraint_ -> constraint_
class virtual ['a] fold : object .. end
class transform : object .. end
module Translate: sig .. end
module type Untranslate = sig .. end
module Untranslate: 
functor (C : sig
val _loc : Camlp4.PreCast.Ast.Loc.t
end-> Untranslate 
val print_expr : expr -> string
val print_rhs : rhs -> string