Instead of parsing and executing a statement or declaration directly we
now parse them first and then execute in a separate step. This gives us
the flexibility to inspect the parsed declaration before execution.
Using this we now inspect parsed declarations, and if it's a single
declaration of form x = y
we execute it as let x = y
instead, fixing
a ton of problems caused by poor declaration support in GHCi.
To avoid any users of the modules I left execStmt
and runDecls
unchanged and added execStmt'
and runDecls'
which work on parsed
statements/declarations.
Edited by Ömer Sinan Ağacan