I used parser combinators to create a lisp-y parser (with array and block
literals), then did post processing on the lisp-y AST to add statements to the
AST. I put the AST into an e-graph, saturated it, and then "evaluated" the
e-graph (using a method similar to e-class analysis from the egg paper)
With time?
I may tune my egg implementation to be efficient enough to solve algebra
problems at some point. Regardless, I will use rewriting based ideas going
forward.