(defn validate-interfaces [{:keys [env form interfaces]}]
(when-not (every? #(.isInterface ^Class %) (disj interfaces Object))
(throw (ex-info "only interfaces or Object can be implemented by deftype/reify"
(merge {:interfaces interfaces
:form form}
(source-info env))))))