                                                                    {:tag (symbol (str (ns-name *ns*) "." interface-name))})]
                                                        args)
                                                  (meta op-name))]
-                      `(defn ~(without-hint op-name)
+                      `(defn ~(without-tag op-name)
                          ~@(when docs [docs])
-                         {:inline (fn ~(mapv without-hint args)
+                         {:inline (fn ~(mapv without-tag args)
                                     `(~'~munged-name
-                                      ~~@(map (comp with-runtime-hint without-primitive-hint) args)))}
+                                      ~~@(map (comp with-runtime-tag without-primitive-tag) args)))}
                          ~args
-                         (~munged-name ~@(map without-hint args)))))
+                         (~munged-name ~@(map without-tag args)))))
                   ops)))))

     (~(symbol (str method "LE")) ~@args)
     (~(symbol (str method "BE")) ~@args)))

(defn without-hint
  "Removes the type hint metadata from `value`."
  [value]
  (vary-meta value dissoc :tag))

(defn without-primitive-hint
  "Removes the primitive type hint metadata from `value`."
  [value]
  (vary-meta value (fn [{:keys [tag] :as meta}]
                     (cond-> meta

    (if (compiler.util/cljs?)
      `(defprotocol ~interface-name
         ~@(map (fn [{:keys [op-name args docs]}]
                  `(~(without-tag op-name)
                    ~(into [(gensym "this")] (map without-tag args))
                    ~@(when docs [docs])))
                ops))
      `(do (definterface ~interface-name
