declare fun {NewStack} Stack={NewCell nil} proc {Push X} S in {Exchange Stack S X|S} end fun {Pop} X S in {Exchange Stack X|S S} X end in stack(push:Push pop:Pop) end