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