Clojure tradeoffs and how to mitigate them?

Well, this is what core.typed was doing, but everyone felt it too painful to retrofit types in all kind of things without types.

Also, if I understood the issue, then I agree with @seancorfield, types would not have caught this error, since both calls are valid and type check. The issue is your particular auth provider somehow was not compatible with both arities of the library. Don’t think there’s an easy way to solve that, they either need to follow the spec, or have better doc.