We currently track all {{IFn}} implementors but in order to do arity checking of statically analyzeable invokes of keywords, vector, etc. we need to do a bit more. {{extend-type}} should update the type in the compiler state with {{:method-params}} {{:max-fixed-arity}} and {{:variadic}}. Then we can just reuse the existing checks in {{cljs.analyzer/parse-invoke}}.