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:location— the same position as aSchooner.Location, naming the file when the caller supplied one
:message is derived from :reason and :position, so tests can
assert on those fields without coupling to the wording. When the
location names a file, the message is file:line:col: followed by
the description instead.