sig
type t
val empty : Biocaml_iset.t
val is_empty : Biocaml_iset.t -> bool
val mem : Biocaml_iset.t -> int -> bool
val add : Biocaml_iset.t -> int -> Biocaml_iset.t
val add_range : Biocaml_iset.t -> int -> int -> Biocaml_iset.t
val intersects_range : Biocaml_iset.t -> int -> int -> bool
val singleton : int -> Biocaml_iset.t
val remove : Biocaml_iset.t -> int -> Biocaml_iset.t
val remove_range : Biocaml_iset.t -> int -> int -> Biocaml_iset.t
val union : Biocaml_iset.t -> Biocaml_iset.t -> Biocaml_iset.t
val inter : Biocaml_iset.t -> Biocaml_iset.t -> Biocaml_iset.t
val diff : Biocaml_iset.t -> Biocaml_iset.t -> Biocaml_iset.t
val compl : Biocaml_iset.t -> Biocaml_iset.t
val compare : Biocaml_iset.t -> Biocaml_iset.t -> int
val equal : Biocaml_iset.t -> Biocaml_iset.t -> bool
val subset : Biocaml_iset.t -> Biocaml_iset.t -> bool
val from : Biocaml_iset.t -> n:int -> Biocaml_iset.t
val after : Biocaml_iset.t -> n:int -> Biocaml_iset.t
val until : Biocaml_iset.t -> n:int -> Biocaml_iset.t
val before : Biocaml_iset.t -> n:int -> Biocaml_iset.t
val iter : Biocaml_iset.t -> f:(int -> unit) -> unit
val iter_range : Biocaml_iset.t -> f:(int -> int -> unit) -> unit
val fold : Biocaml_iset.t -> init:'a -> f:(int -> 'a -> 'a) -> 'a
val fold_range :
Biocaml_iset.t -> init:'a -> f:(int -> int -> 'a -> 'a) -> 'a
val for_all : Biocaml_iset.t -> f:(int -> bool) -> bool
val exists : Biocaml_iset.t -> f:(int -> bool) -> bool
val filter : Biocaml_iset.t -> f:(int -> bool) -> Biocaml_iset.t
val partition :
Biocaml_iset.t -> f:(int -> bool) -> Biocaml_iset.t * Biocaml_iset.t
val cardinal : Biocaml_iset.t -> int
val elements : Biocaml_iset.t -> int list
val ranges : Biocaml_iset.t -> (int * int) list
val min_elt : Biocaml_iset.t -> int
val max_elt : Biocaml_iset.t -> int
val choose : Biocaml_iset.t -> int
val to_stream : Biocaml_iset.t -> (int * int) Stream.t
val of_stream : (int * int) Stream.t -> Biocaml_iset.t
val of_list : (int * int) list -> Biocaml_iset.t
end