Well, that's part of the discussion. Right now, `tools.reader` (and edamame) returns a clojure object (symbol, keyword, map, etc) or throws. there are a number of ways we could potentially expand `tools.reader` to return invalid code in a way that still works for users, such as an InvalidToken record or java object holding the invalid tokens or objects. but i'm only going to put in that work if you think it's worthwhile. otherwise, i'll solve it in the other libraries.