Unfortunately, when read in using a LineNumberingPushbackReader, code like this has its :line metadata squashed by the line numbers coming from that. A REPL-friendly example would be:
The latter seems more correct to me (and is equivalent to read-string).
Proposed: Retain existing :line/:column meta on seqs and lists that are read with meta rather than overriding with the values read from the reader.
Additionally, use :file meta as a standard way for the REPL to allow external tool using the repl to specify the source context:
The repl is finding :file meta and binding SOURCE_PATH if it sees it.