Simple stack type.
$ Stack(init || []) : Stack
// Create a new stack.
$ Stack.push(item : a) : ()
// Pushes a value to the stack.
$ Stack.pop() : a
// Pops a value from the stack.
$ Stack.length() : Number
// The length of the stack.
$ Stack.map(f (item : a) -> b) : Stack
// Maps each value of the stack returning a new Stack.
$ Stack.filter(f (item : a) -> Boolean) : Stack
// Returns a filtered Stack.
$ Stack.reduce(f (acc : b, item : a) -> b, initial : b) -> b
// If no initial value is passed, it will use Stack.
See license.md
or visit Unlicense.