# Module Stack_intf

    module Stack_intf: sig .. end

An interface for stacks that follows `Core`'s conventions, as opposed to OCaml's standard `Stack` module.

An interface for stacks that follows `Core`'s conventions, as opposed to OCaml's standard `Stack` module.

    module type S = sig .. end

An interface for stacks that follows `Core`'s conventions, as opposed to OCaml's standard `Stack` module.
`fold`, `iter`, `find`, and `find_map` visit the elements in order from the top of the stack to the bottom. `to_list` and `to_array` return the elements in order from the top of the stack to the bottom.
`of_list l` returns a stack whose top is the first element of `l` and bottom is the last element of `l`.
`create ()` returns an empty stack.
`push t a` adds `a` to the top of stack `t`.
`pop t` removes and returns the top element of `t` as `Some a`, or returns `None` if `t` is empty.
`top t` returns `Some a`, where `a` is the top of `t`, unless `is_empty t`, in which case `top` returns `None`.
`clear t` discards all elements from `t`.
`copy t` returns a copy of `t`.
`until_empty t f` repeatedly pops an element `a` off of `t` and runs `f a`, until `t` becomes empty. It is fine if `f` adds more elements to `t`, in which case the most-recently-added element will be processed next.