Problem
Typed Clojure uses local type argument synthesis to automatically synthesise type arguments to polymorphic functions. Some inference cases are hard to synthesise, which usually cause the inference engine to fail.
These cases require manual annotation of type arguments, which are potentially different at every function application.
Solution
I require particular reader metadata to survive analysis, probably attached to a symbol presenting a function in the operator position of an invocation.
Current Behaviour
Particular reader metadata keys are hardcoded to survive analysis, such as :tag.
Analysing this form loses any mention of :a, but keeps :tag in a special field in the result of analysis.
Proposal
Modify the analyser to add a metadata field for function invocations.