(defvar *conflict-resolution-strategies* '(fireable-rules find-least-recently-fired-rules simplest-instantiations find-first)) (defun conflict-resolution (matching-rules) (dolist (crs *conflict-resolution-strategies* matching-rules) (if *verbose* (setf (get crs 'before-apply) (copy-tree matching-rules))) (setf matching-rules (funcall crs matching-rules)) (if *verbose* (setf (get crs 'after-apply) (copy-tree matching-rules)))))