Changed static assertions to throw exceptions instead of exiting the program, added internal headers as makefile dependency, repl handles exception cases
More consistent error messages, compiles with optimizations enabled