functor (Info : sig type 'a t end->   sig     type key = string     type 'a info = '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) -> t -> '-> 'b   end