 
 (defn ^:no-doc gen-type-parameters-defimplicit
   "Generate the defimplicit for definitions with implicit type parameters."
-  [def-name def-kind doc explicit-def-name implicit-types real-params explicit-params body]
+  [def-name def-kind doc explicit-def-name implicit-types implicit-types-params real-params explicit-params body]
   (let [def-env-var (gensym "def-env")
         ctx-var (gensym "ctx")
         ndoc (mk-def-doc def-kind body doc)

       ~ndoc
       [~def-env-var ~ctx-var ~@defparams]
       (let [~@lt-clauses]
         (list (var ~explicit-def-name) ~@(concat implicit-types
                                                  (map first defparams)))))))

;;{

    (if-let [res (u/fetch-implicit-type-parameters params)]
      (handle-implicit-type-parameters `defaxiom thm-name doc (:rest-params res) body
                                       (:implicit-types res)
                                       (map first (:explicit-type-params res))
                                       (symbol (str thm-name "-ax"))
                                       (into [] (concat (:explicit-type-params res) (:rest-params res))))
      ;; no implicit type parameters
