sig
  type 'a ty = 'Type.t
  type t
  val create : int -> Type.StringTbl.t
  val add : Type.StringTbl.t -> string -> 'Type.StringTbl.ty -> '-> 'a
  exception Unbound_value of string
  exception Incompatible_type of string
  val find : Type.StringTbl.t -> string -> 'Type.StringTbl.ty -> 'a
end