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