functor
(Key : sig
type t
val equal : t -> t -> bool
val hash : t -> int
val to_string : Type.t -> string
end)
(Info : sig type 'a t end) ->
sig
type key = Key.t
type 'a info = 'a Info.t
type t
val create : int -> t
val add : t -> key -> 'a ty -> 'a info -> unit
exception Unbound_value of string
exception Incompatible_type of string
val find : t -> key -> 'a ty -> 'a info
val iter : (key -> 'a ty -> 'a info -> unit) -> t -> unit
val fold : (key -> 'a ty -> 'a info -> 'b -> 'b) -> t -> 'b -> 'b
end