Module Stack

module Stack: sig .. end
Last-in first-out stacks.

This module implements stacks (LIFOs), with in-place modification.


type t('a);
The type of stacks containing elements of type 'a.
exception Empty;
Raised when Stack.pop or Stack.top is applied to an empty stack.
let create: unit => t('a);
Return a new stack, initially empty.
let push: ('a, t('a)) => unit;
push x s adds the element x at the top of stack s.
let pop: t('a) => 'a;
pop s removes and returns the topmost element in stack s, or raises Empty if the stack is empty.
let top: t('a) => 'a;
top s returns the topmost element in stack s, or raises Empty if the stack is empty.
let clear: t('a) => unit;
Discard all elements from a stack.
let copy: t('a) => t('a);
Return a copy of the given stack.
let is_empty: t('a) => bool;
Return true if the given stack is empty, false otherwise.
let length: t('a) => int;
Return the number of elements in a stack.
let iter: ('a => unit, t('a)) => unit;
iter f s applies f in turn to all elements of s, from the element at the top of the stack to the element at the bottom of the stack. The stack itself is unchanged.