Start generalizing rewrite rules
Simplify new code
Simlify descend
Add new rotate rule
Try being more strict

Stack overflow problems, needs more research.
Clean up
Generalize rotate optimization
Clean up
Misc changes
Make Value constructors strict
Tweak rewrite rules
Rewrite rewrite code

Use bools and or instead of maybes
Add another expr rewrite rule
Tweak shrinking
Rewrite graph rewriting

Now uses the State monad and rewrite in Ruled is exhaustive.
Refactor and clean up