module Stack: sig .. end
This module implements stacks (LIFOs), with in-place modification.
type t('a);
'a
.exception Empty;
let create: unit => t('a);
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;
let copy: t('a) => t('a);
let is_empty: t('a) => bool;
true
if the given stack is empty, false
otherwise.let length: t('a) => int;
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.