(defclass some-class nil (slot1 slot2)) (defun parse-date (foo) foo) (defmethod initialize-instance :after ((some-class some-class) &key) (macrolet ((maybe-parse-date (slot-name) `(with-slots (,slot-name) some-class (when ,slot-name (setf ,slot-name (etypecase ,slot-name (integer ,slot-name) (string (parse-date ,slot-name)))))))) (maybe-parse-date slot-1) (maybe-parse-date slot-2)))