`sig
type 'a t
type 'a bound
val create :
'a Interval_intf.Gen.bound ->
'a Interval_intf.Gen.bound -> 'a Interval_intf.Gen.t
val empty : 'a Interval_intf.Gen.t
val intersect :
'a Interval_intf.Gen.t ->
'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.t
val is_empty : 'a Interval_intf.Gen.t -> bool
val is_empty_or_singleton : 'a Interval_intf.Gen.t -> bool
val bounds :
'a Interval_intf.Gen.t ->
('a Interval_intf.Gen.bound * 'a Interval_intf.Gen.bound) option
val lbound : 'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.bound option
val ubound : 'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.bound option
val bounds_exn :
'a Interval_intf.Gen.t ->
'a Interval_intf.Gen.bound * 'a Interval_intf.Gen.bound
val lbound_exn : 'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.bound
val ubound_exn : 'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.bound
val convex_hull : 'a Interval_intf.Gen.t list -> 'a Interval_intf.Gen.t
val contains : 'a Interval_intf.Gen.t -> 'a Interval_intf.Gen.bound -> bool
val compare_value :
'a Interval_intf.Gen.t ->
'a Interval_intf.Gen.bound ->
[ `Above | `Below | `Interval_is_empty | `Within ]
val bound :
'a Interval_intf.Gen.t ->
'a Interval_intf.Gen.bound -> 'a Interval_intf.Gen.bound option
val is_superset :
'a Interval_intf.Gen.t -> of_:'a Interval_intf.Gen.t -> bool
val is_subset :
'a Interval_intf.Gen.t -> of_:'a Interval_intf.Gen.t -> bool
val map :
'a Interval_intf.Gen.t ->
f:('a Interval_intf.Gen.bound -> 'b Interval_intf.Gen.bound) ->
'b Interval_intf.Gen.t
val are_disjoint : 'a Interval_intf.Gen.t list -> bool
val are_disjoint_as_open_intervals : 'a Interval_intf.Gen.t list -> bool
val list_intersect :
'a Interval_intf.Gen.t list ->
'a Interval_intf.Gen.t list -> 'a Interval_intf.Gen.t list
val half_open_intervals_are_a_partition :
'a Interval_intf.Gen.t list -> bool
end`