Thu May 14 09:59:38 CEST 2009

more algebra

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.