I expect the following from your read eval print loop.
- It should load all data type definitions in the file and
- build a start environment containing all constructors.
- build a start type environment containing all constructors
- type check the file (and build an updated type environment with all top level functions)
- build a new environment containing all top level functions (it does this already)
- Input expressions, type check and evaluate them (it does part of this)
- Have a flashier name than Repl. Maybe loli (for "lolipop interpreter")?
- Not crash as often as it does (catch exceptions!)
I expect the following from your read eval print loop.