(defun GetFirstTrue (ruleset row) (if (funcall (RDRule-fn ruleset) row) (RDRule-class ruleset) (GetFirstTrue (RDRule-parent ruleset) row))) (deftest test-GetFirstTrue () (check (= 1 (GetFirstTrue (make-RDRule :fn #'(lambda (x) (not (null x))) :class 1 :parent nil) (first (table-rows (titanic)))))))