Module Fix.Partition

type 'n elt = int
type 'n t
val create : ?partition:('n elt -> 'n elt -> int) -> 'n Fix__.Indexing.cardinal -> 'n t
val mark : 'n t -> 'n elt -> unit
val clear_marks : 'n t -> unit
val split : 'n t -> unit
val discard_unmarked : 'n t -> unit
val discard : 'n t -> ('n elt -> bool) -> unit
type block = int
val block_count : 'n t -> int
val find : 'n t -> 'n elt -> block
val iter_block_elements : 'n t -> block -> ('n elt -> unit) -> unit
val iter_all_elements : 'n t -> ('n elt -> unit) -> unit
val choose : 'n t -> block -> 'n elt
val is_chosen : 'n t -> 'n elt -> bool
val exhaust_marked_elements : 'n t -> block -> ('n elt -> unit) -> unit
val get_marked_blocks : 'n t -> block array