# Module Bitarray

    module Bitarray: sig .. end

This module implements efficient and compact arrays of boolean values. It stores its values in the bits of an integer, using multiple integers to allow for arrays larger than the machine word size. All operations are on immediates (no caml_modify), and are quite simple. Hence this data structure should be more efficient than an array of bools.

    type t

    include Core.Std.Sexpable

    val create : int -> t

`create size` size must be less than ((word size - 2) * max array length)

    val get : t -> int -> bool

`get t pos` get the value in position `pos`, raises Invalid_argument if the position is out of bounds.

    val set : t -> int -> bool -> unit

`set t pos` set the value in position `pos`, raises Invalid_argument if the position is out of bounds.

    val clear : t -> unit

`clear t` set the contents of every element to false O(n / (word_size - 2))

    val fold : t -> init:'a -> f:('a -> bool -> 'a) -> 'a

`fold t ~init ~f` Fold over the array as in `Array.fold`

    val iter : t -> f:(bool -> unit) -> unit

`iter t ~f` Iterate over the array as in `Array.iter`