sig
  type t
  val make : unit -> t
  val merge : t -> t -> unit
  type elt
  val make_in_range : int -> t
  val query : t -> Mutable_types.IVector.elt
  val incr : t -> unit
end