sig
  type ('k, +'v, 'cmp) interval_map
  module Key : Core_kernel.Std.Comparator.S
  module Interval :
    sig
      type t = Key.t Interval_map_intf.Interval.t
      val is_empty : Interval_map_intf.S.Interval.t -> bool
      val contains : Interval_map_intf.S.Interval.t -> Key.t -> bool
    end
  type 'a t =
      (Key.t, 'a, Key.comparator_witness) Interval_map_intf.S.interval_map
  val create :
    left_of_leftmost:'->
    value_right_of:(Key.t, 'a, Key.comparator_witness) Core_kernel.Std.Map.t ->
    'Interval_map_intf.S.t
  val always : '-> 'Interval_map_intf.S.t
  val find : 'Interval_map_intf.S.t -> Key.t -> 'v
  val change :
    'Interval_map_intf.S.t -> at:Key.t -> '-> 'Interval_map_intf.S.t
  val map :
    'Interval_map_intf.S.t -> f:('-> 'b) -> 'Interval_map_intf.S.t
  val map2 :
    'Interval_map_intf.S.t ->
    'Interval_map_intf.S.t ->
    f:('-> '-> 'c) -> 'Interval_map_intf.S.t
  val remove_changes_within :
    'Interval_map_intf.S.t ->
    Interval_map_intf.S.Interval.t -> 'Interval_map_intf.S.t
  val set_within :
    'Interval_map_intf.S.t ->
    Interval_map_intf.S.Interval.t -> '-> 'Interval_map_intf.S.t
  val map_within :
    'Interval_map_intf.S.t ->
    Interval_map_intf.S.Interval.t ->
    f:('-> 'v) -> 'Interval_map_intf.S.t
  val construct_preimage :
    'Interval_map_intf.S.t ->
    ('v * Interval_map_intf.S.Interval.t) Core_kernel.Std.Sequence.t
  val compare :
    ('-> '-> int) ->
    'Interval_map_intf.S.t -> 'Interval_map_intf.S.t -> int
  val t_of_sexp :
    (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'Interval_map_intf.S.t
  val sexp_of_t :
    ('-> Sexplib.Sexp.t) -> 'Interval_map_intf.S.t -> Sexplib.Sexp.t
end