Do all of the following.
For the next questions, use the following signature
signature lab02 = sig
type `a set
create `a set
pull `a set -> `a
push `a * `a set -> `a set
dup `a set -> `a set
zilch `a set -> bool
end
dup
zilch(create)
pull (create)
pull (dup )
pull (push )
push (dup (push (1, lab02.create)),lab02.create)
push (zilch(create)), create)
where the lab02.xxx notation means that a new instance of the module is used every time -- in other words, the `a are independent
push (2, push (3, create))
zilch(create)