will read the comment! "additive" is absolutely something i was thinking about! one analogy is: lisp allows overriding a function by setting it to something else, but the class system allows before/after/around overrides, and elisp extends this to all functions. it works even when two external packages modify functions like this without having to avoid stepping on each other's toes because it's structured and well thought out / iterated on (i.e. not introduced to perform hacks -- will not worry about this for pants right now) and v2 dependency resolution of
@rule
declarations feels a lot like the multimethod dispatch in CLOS (well, now it does, with the new multiple-subjects-for-a-rule idea)