Alba compiler
Module type
Class type
Library alba.fmlib
Module Fmlib . Pool
type 'a t

Type of the pool.

val make_empty : unit -> 'a t

Make an empty pool.

val capacity : 'a t -> int

The current capacity of the pool.

val has : 'a t -> int -> bool

has p i Has the pool p an element at position i?

val elem : 'a t -> int -> 'a

elem p i The ith element of the pool p.

val find : 'a t -> int -> int

find p i finds the next occupied element in the pool p starting from i. Returns i if i is occupied. Returns capacity if there is no next occupied element.

val iter : ( 'a -> unit ) -> 'a t -> unit

iter f p Iterate over all occupied elements in the pool.

val occupy : 'a t -> 'a -> int

occupy p a occupies a place for the element a and puts it there. If there are no free elements, then allocate space in pool. Return the position of the element a in the pool.

val release : 'a t -> int -> unit

release p i makes the position i in the pool free.