Handling seamlessly converting semantic errors in synchronous code to asynchronous semantic errors (represented by SemanticError exception).
Please feel free to fork this project and make pull requests. Any change to code must come with tests, of course.