From: Chris Withers <chrisw@nipltd.com>
Ah, okay... so really, prettymuch all Zope objects should be wrapped with only one or two exceptions, most of which aren't actually objects as such but simple data types?
Yes.
Also, there is a very limited range of "natural" ways to construct the wrappers. Once contructed, of course, we can fool with them in arbitrary ways.
So I see, does this reduce efficiency at all?
Sure, but the question is, does it reduce efficiency *unacceptably*, and I can't answer that.
container. The simplification is the rule (A o B) o (B o C) => A o (B o C).
I don't see how this simplification actually makes a difference...
In the next step, if we ask for a D and it's found in B, we get: (A o (B o C)).D => (B o C).D o (A o (B o C)) => ((D o B) o (B o C)) o (A o (B o C)) => (D o (B o C)) o (A o (B o C)) instead of ((A o B) o (B o C)).D => (A o B).D o ((A o B) o (B o C)) => ((D o B) o (A o B)) o ((A o B) o (B o C)) The search order with simplification is D, B, C, A (containment first), while without it's D, B, A, C (just plain weird). Cheers, Evan @ digicool & 4-am