sig
  module Array : sig val set : 'a array -> int -> '-> unit end
  module Hashtbl :
    sig
      type ('a, 'b) t
      val create : int -> ('a, 'b) Data.Hashtbl.t
      val get : ('a, 'b) Data.Hashtbl.t -> ('a, 'b) Hashtbl.t
      val add : ('a, 'b) Data.Hashtbl.t -> '-> '-> unit
      val find : ('a, 'b) Data.Hashtbl.t -> '-> 'b
      val mem : ('a, 'b) Data.Hashtbl.t -> '-> bool
      val remove : ('a, 'b) Data.Hashtbl.t -> '-> unit
      val replace : ('a, 'b) Data.Hashtbl.t -> '-> '-> unit
      val iter : ('-> '-> unit) -> ('a, 'b) Data.Hashtbl.t -> unit
      val fold :
        ('-> '-> '-> 'c) -> ('a, 'b) Data.Hashtbl.t -> '-> 'c
    end
end