Improve error messages by reporting source position of the error
(EXPERIMENTAL) add "this" as implicit first argument of every function, and pass the obj if called like this: obj.func(..)