                 parts
                 (range fast-path-protocol-partitions-count))]))))
 
-(defn- annotate-specs [annots v [f sigs]]
+(core/defn- annotate-specs [annots v [f sigs]]
   (conj v
     (vary-meta (cons f (map #(cons (second %) (nnext %)) sigs))
       merge annots)))

         (~'defrecord* ~tagname ~hinted-fields ~pmasks
           (extend-type ~tagname ~@(dt->et tagname impls fields true)))))))

(defn- build-map-factory [rsym rname fields]
  (core/let [fn-name (with-meta (symbol (core/str 'map-> rsym))
                       (assoc (meta rsym) :factory :map))
             ms (gensym)

                ~(with-meta `(fn ~(adapt-proto-params type meth)) (meta form))))
        meths))))

(core/defn- proto-assign-impls [env resolve type-sym type [p sigs]]
  (warn-and-update-protocol p type env)
  (core/let [psym      (resolve p)
             pprefix   (protocol-prefix psym)
