blob: 1cd417f17d3d7aa4b1fb369ac1455b3d8d54c9d4 [file] [log] [blame] [edit]
new : Unit -> EmptyBox;
insert : [a]. {box : EmptyBox, item : a}# -> Box a;
remove : [a]. Box a -> {box : EmptyBox, item : a}#;
delete : EmptyBox -> Unit;
test : [x]. x -> x;
test x
= let boxbox = new Unit
in let box = new Unit
in let full = insert { box = box, item = x }
in let fullbox = insert { box = boxbox, item = full }
in take r { box = b } = remove fullbox
in take r { item = i } = r
in let u = delete b
in take r { box = b} = remove i
in let u = delete b
in take r { item = ret } = r
in ret
end
end
end
end
end
end
end
end
end
end;