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