Exception raised by the reader on malformed source.
Each error carries:
:reason— a structured term identifying the failure mode (atom or tagged tuple); meant to be machine-matchable in tests:position—{line, column}of the offending input
:message is derived from :reason and :position, so tests can
assert on those fields without coupling to the wording.