scala type inference is weird
switched to snapshot based reason tracking

but doesn't work. undoOne() goes all the way
back to the top
debugging
Created implication graph
println debugging
Finally. Sat is working again.
removing debugging