The one global rule: a single defstruct with all the fields The aging slot rule: group slots in struct by when they are created so we can reset to some past point, at ease The local global rule (defun x (&optional *x* *x*) (x1)) for all sub-calls in x1, *x* is a referable local copy. The "?" rule- pick one from a range The "!" rule- memo "?".