(defn -deftype [name class-name args interfaces]
(doseq [arg [class-name name]]
(memo-clear! members* [arg])
(memo-clear! members* [(str arg)]))
(let [interfaces (mapv #(symbol (.getName ^Class %)) interfaces)]
(eval (list 'let []
(list 'deftype* name class-name args :implements interfaces)
(list 'import class-name)))))