Comment made by: hypirion
I think the main "issue" here resides within the undocumented functionality of fn. (fn (link: x) x) is a semantically working function, but (fn (link: x) x) expands into (fn ((link: x) x)). Anonymous function literals expand into (fn (link: gensyms) (...)), and as such, it also accepts expressions like (fn (link: x) x). Should pprint pretty print expressions which has used fn directly, or should it "just" ignore it?