Right now the parsing stage has to be ran inside the ST monad because of the fact that it parses into a stateful AST.
The parsing step and various steps does not need to be LispEnv stateful.
Look into breaking up the AST into a few phases or looking into some form of tagging or alternative AST so that we can tag various pieces of useful information to the AST.
I can envision wanting to tag the following items:
Right now the parsing stage has to be ran inside the ST monad because of the fact that it parses into a stateful AST.
The parsing step and various steps does not need to be LispEnv stateful.
Look into breaking up the AST into a few phases or looking into some form of tagging or alternative AST so that we can tag various pieces of useful information to the AST.
I can envision wanting to tag the following items: