sig
  val create :
    ('Interval_intf.T.bound * 'Interval_intf.T.bound) list ->
    'Interval_intf.T.t
  val create_from_intervals : 'T.interval list -> 'Interval_intf.T.t
  val contains : 'Interval_intf.T.t -> 'Interval_intf.T.bound -> bool
  val contains_set :
    container:'Interval_intf.T.t -> contained:'Interval_intf.T.t -> bool
  val ubound_exn : 'Interval_intf.T.t -> 'Interval_intf.T.bound
  val lbound_exn : 'Interval_intf.T.t -> 'Interval_intf.T.bound
  val ubound : 'Interval_intf.T.t -> 'Interval_intf.T.bound option
  val lbound : 'Interval_intf.T.t -> 'Interval_intf.T.bound option
end