Original: OrderedSet.mo
public func toPure<T>(stack : Stack<T>) : Pure.Stack<T>
public func fromPure<T>(stack : Pure.Stack<T>) : Stack<T>
public func new<T>() : Stack<T>
public func isEmpty(stack : Stack<Any>) : Bool
public func size(stack : Stack<Any>) : Nat
public func contains<T>(stack : Stack<T>, item : T) : Bool
public func push<T>(stack : Stack<T>, item : T) : ()
public func last<T>(stack : Stack<T>) : ?T
public func pop<T>(stack : Stack<T>) : ?T
public func get<T>(stack : Stack<T>, n : Nat) : ?T
public func reverse<T>(stack : Stack<T>) : ()
public func forEach<T>(stack : Stack<T>, f : T -> ())
public func mapResult<T, R, E>(stack : Stack<T>, f : T -> Result.Result<R, E>) : Result.Result<Stack<R>, E>
public func foldLeft<T, A>(
stack : Stack<T>,
base : A,
combine : (A, T) -> A
) : A
public func foldRight<T, A>(
stack : Stack<T>,
base : A,
combine : (T, A) -> A
) : A
public func find<T>(stack : Stack<T>, f : T -> Bool) : ?T
public func all<T>(stack : Stack<T>, f : T -> Bool) : Bool
public func any<T>(stack : Stack<T>, f : T -> Bool) : Bool
public func merge<T>(
stack1 : Stack<T>,
stack2 : Stack<T>,
lessThanOrEqual : (T, T) -> Bool
) : Stack<T>
public func compare<T>(
stack1 : Stack<T>,
stack2 : Stack<T>,
compare : (T, T) -> Order.Order
) : Order.Order
public func generate<T>(n : Nat, f : Nat -> T) : Stack<T>
public func singleton<T>(item : T) : Stack<T>
public func repeat<T>(item : T, n : Nat) : Stack<T>
public func toText<T>(stack : Stack<T>, f : T -> Text) : Text