Change the implementation so that the lifted language interpreter takes an environment as a second parameter. The environment is a functional data structure, making it easy to mix in symbolic evaluation. Currently it is implemented as an association list, but ideally it could become a hash table at some point. One implication is that variables no longer store their values.
There have also been a few other miscellaneous changes and bug fixes along the way.
@Sumith1896 This is ready to merge, but I'm waiting until you look through it. (Don't worry about going through it all, there are a lot of changes, I just wanted to give you an opportunity to comment before merging it.)
Change the implementation so that the lifted language interpreter takes an environment as a second parameter. The environment is a functional data structure, making it easy to mix in symbolic evaluation. Currently it is implemented as an association list, but ideally it could become a hash table at some point. One implication is that variables no longer store their values.
There have also been a few other miscellaneous changes and bug fixes along the way.
@Sumith1896 This is ready to merge, but I'm waiting until you look through it. (Don't worry about going through it all, there are a lot of changes, I just wanted to give you an opportunity to comment before merging it.)