% File StackSecureStateUnbun.oz \insert 'NewWrapper.oz' declare local Wrap Unwrap {NewWrapper Wrap Unwrap} fun {NewStack} {Wrap {NewCell nil}} end proc {Push S E} C={Unwrap S} in C:=E|@C end fun {Pop S} C={Unwrap S} in case @C of X|S1 then C:=S1 X end end fun {IsEmpty S} @{Unwrap S}==nil end in Stack=stack(new:NewStack push:Push pop:Pop isEmpty:IsEmpty) end