Thu May 14 09:59:38 CEST 2009
Is there some way to turn the monoid into a group? Defining
operations as invertible would make things a lot more elegant
probably. For arithmetic this isn't too hard: add a 2nd "kill stack"
that carries information to perform the undo. Alternatively, add the
undo information to the values themselves.
I.e. something like:
(1 2 +) -> (3), (2 -)
There should be some application for constraint-based programming
here.. Anyways, let's make the basic structure first.