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