Я хотел бы сделать что-то вроде:
(defrecord Base [])
(defrecord Person [])
(defrecord Animal [])
(derive Person Base)
(derive Animal Base)
(isa? Animal Person)
Возможно ли это?
Обновление:
С тех пор я понял, что это невозможно, поэтому яя делаю что-то вроде этого:
(defmulti type class)
(defmethod type Base [_] ::base )
(defmethod type Animal [_] ::animal )
(defmethod type Person [_] ::person )
Имеет ли это смысл или есть лучший способ?