Module type Interval_intf.Gen.S


module type S = sig .. end


Module for simple closed intervals over arbitrary types that are ordered correctly using polymorphic compare.
val create : 'a Interval_intf.T.bound -> 'a Interval_intf.T.bound -> 'a Interval_intf.T.t
val empty : 'a Interval_intf.T.t
val intersect : 'a Interval_intf.T.t -> 'a Interval_intf.T.t -> 'a Interval_intf.T.t
val is_empty : 'a Interval_intf.T.t -> bool
val is_empty_or_singleton : 'a Interval_intf.T.t -> bool
val bounds : 'a Interval_intf.T.t ->
('a Interval_intf.T.bound * 'a Interval_intf.T.bound) option
val lbound : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound option
val ubound : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound option
val bounds_exn : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound * 'a Interval_intf.T.bound
val lbound_exn : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound
val ubound_exn : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound
val contains : 'a Interval_intf.T.t -> 'a Interval_intf.T.bound -> bool
val compare_value : 'a Interval_intf.T.t ->
'a Interval_intf.T.bound ->
[ `Above | `Below | `Interval_is_empty | `Within ]
val bound : 'a Interval_intf.T.t ->
'a Interval_intf.T.bound -> 'a Interval_intf.T.bound option
val contains_interval : 'a Interval_intf.T.t -> 'a Interval_intf.T.t -> bool
val map : f:('a Interval_intf.T.bound -> 'b Interval_intf.T.bound) ->
'a Interval_intf.T.t -> 'b Interval_intf.T.t
val are_disjoint : 'a Interval_intf.T.t list -> bool
val are_disjoint_as_open_intervals : 'a Interval_intf.T.t list -> bool
val list_intersect : 'a Interval_intf.T.t list ->
'a Interval_intf.T.t list -> 'a Interval_intf.T.t list
val intervals_are_a_partition : 'a Interval_intf.T.t list -> bool