(defparameter *shape* (klass () area)) (defparameter *circle* (klass (*shape*) radius)) (defprop radius) (defmeth area *circle* (u) (* pi (expt (radius u) 2))) (defun !circle () (let ((c (inst0 *circle*))) (setf (radius c) 2) (area c)))