functor (H : Hashtbl.HashedType->
  sig
    type name = H.t
    type symbol = int
    type namepool
    val create_pool : unit -> namepool
    val init_pool : namepool -> unit
    val get_name : namepool -> symbol -> name
    val add_name : namepool -> name -> symbol
    val exists_name : namepool -> name -> bool
    val symbol_equals : namepool -> symbol -> symbol -> bool
    val pool_size : namepool -> int * int * int
  end