Unfinished commit ; to be amended. Add monads. Add def keyword in lexer and parser. Refactor error handling (to be continued)