I got bored in class and decided to set up an optimizer.
A side effect is interpret.ml. I realized that what I was writing was basically part of an interpreter, so I moved the interpreter-y bits there. The constant-folding optimizer pass mainly just figures out when it can call the interpreter.
I got bored in class and decided to set up an optimizer.
A side effect is interpret.ml. I realized that what I was writing was basically part of an interpreter, so I moved the interpreter-y bits there. The constant-folding optimizer pass mainly just figures out when it can call the interpreter.
Currently passes all tests.