Functor Type.Make_tbl

module Make_tbl: 
functor (Key : sig
include Hashtbl.HashedType
val to_string : Type.t -> string
end-> 
functor (Info : sig
type 'a t 
end-> Heterogeneous_table  with type key = Key.t and type 'a info = 'a Info.t

Build an heterogeneous table associating keys to info. Not efficient for types registered without ml name.

Parameters:
Key : sig include Hashtbl.HashedType val to_string: t -> string end
Info : sig type 'a t end

type key 
type 'a info 
type t 

Type of heterogeneous (hash)tables indexed by values of type Key.t. Type values ensure type safety.

val create : int -> t

create n creates a new table of initial size n.

val add : t ->
key ->
'a Type.ty -> 'a info -> unit

add tbl s ty v binds s to the value v in the table tbl. If the returned value is a closure whose the type of one of its argument was dynamically registered, then it may raise Incompatible_Type.

exception Unbound_value of string
exception Incompatible_type of string
val find : t ->
key ->
'a Type.ty -> 'a info

find tbl s ty returns the binding of s in the table tbl.

val iter : (key ->
'a Type.ty -> 'a info -> unit) ->
t -> unit
val fold : (key ->
'a Type.ty -> 'a info -> 'b -> 'b) ->
t -> 'b -> 'b