sig
  type 'a t
  type 'a entry = int * int * 'a
  val empty : 'Rgmap.t
  val add : ?overlap:bool -> 'Rgmap.entry -> 'Rgmap.t -> 'Rgmap.t
  val find : int -> int -> 'Rgmap.t -> 'Rgmap.entry
  val find_all : int -> int -> 'Rgmap.t -> 'Rgmap.entry list
  val iter : ('Rgmap.entry -> unit) -> 'Rgmap.t -> unit
end