Module Util.Stack

type 'a t
exception Empty

Alias for Stack.Empty.

val create : unit -> 'a t

Create an empty stack.

val push : 'a -> 'a t -> unit

Add an element to a stack.

val find : ('a -> bool) -> 'a t -> 'a

Find the first element satisfying the predicate.

raises Not_found

it there is none.

val is_empty : 'a t -> bool

Whether a stack is empty.

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

Iterate a function over elements, from the last added one.

val clear : 'a t -> unit

Empty a stack.

val length : 'a t -> int

Length of a stack.

val pop : 'a t -> 'a

Remove and returns the first element of the stack.

raises Empty

if empty.

val top : 'a t -> 'a

Remove the first element of the stack without modifying it.

raises Empty

if empty.

val to_list : 'a t -> 'a list

Convert to a list.

val find_map : ('a -> 'b option) -> 'a t -> 'b

Find the first element that returns Some _.

raises Not_found

it there is none.

val fold_until : ('c -> 'a -> 'c CSig.until) -> 'c -> 'a t -> 'c

Like CList.fold_left_until. The stack is traversed from the top and is not altered.