(defclass лошадиные () ())
(defclass конь (лошадиные) ())
(defclass пегас (лошадиные) ())

(defmethod род ((животина лошадиные))
  (class-name (class-of животина)))

(defmethod заржи ((животина лошадиные))
  (format t "~&~@(~a~): И-ГО-ГО!" (род животина)))

(defmethod взлетай ((животина пегас))
  (format t "~&~@(~a~): Поехали нахуй!" (род животина)))

(defmethod насри ((животина лошадиные))
  (format t "~&*~(~a~) кекает*" (род животина)))

(defun зацени (лошадина)
  (format t "~&Гля, какой у меня ~(~a~)" (род лошадина))
  (заржи лошадина))

(loop :for род :in '(конь пегас)
      :for приказ :in '(насри взлетай)
      :for животина :=  (make-instance род)
      :do (funcall приказ животина)
      :do (зацени животина))