Bug fix: the lexer did not recognize empty strings properly.
Raise exception when parsing fails.
Improve error messages.
Implement coercions macro.