I wish you had proved that with repl output...oh, christ, you are not
talking about padding, you are talking about the storage. Which takes me
back to your use of "This" which in turn takes me back to high school
geometry and Mr. Wiseman who always said "There's no room for pronouns
in geometry, Mr. Tilton.
That One will be along shortly to recommend either a metaclass or
AspectL, I will recommend Cells which always does things In the Right
Order(tm). And happily saves you from having to write i-i methods, that
name is too long and I have carpal tunnel, dammit! I digress.
A humbler "gee, let's do everything with CLOS!" solution would be to use
an :around method to set up the storage slot, doing so /after/
call-next-method to get the desired effect.
But now we have the CLOS tail wagging the dog, which I am afraid is you.
What happens when things get more complicated and you run out of
stupid GF dispatch tricks? /Now/ we need That One. Or Cells.
Interestingly, Cells was invented precisely to solve a problem with
order of calculation -- one where slots needed the value of slots from
other instances as well as the same -- not to do reactive programming
(the handiest name for this particular pet trick). Reactive just fell
out of the tree, which was the second sign to me that Cells was way
cool. The first was how it trivially dispatched the daunting problem of
getting complex gui geometry calculated in the right order.
She was simply wrong. That breaks the usefulness of generic dispatch.
Do I tell you my problems? :)