On Tue, Oct 17, 2006 at 04:22:59PM -0700, Jonathan Lang wrote: : I've never really been happy with the inconsistency between runtime : composition and compile-time composition; but my problem has generally : been with the runtime side of things - in particular, I find the fact : that "does A does B does C" has an ordering at runtime to be annoying. : I understand the need for ordered composition; without it, there : would be no reliable way to resolve disputes between roles without : falling back to the original class (which isn't an option when the : goal is to change that aspect of the class' behavior). : : Personally, I would rather see "does A does B does C" be unordered in : all cases, and use something like "does A & does B & does C" to : represent ordered composition (where '&' hints at its "delayed : evaluation" behavior in other situations). Or maybe use "also", in : analogy to how a class can be defined in stages during compile-time; : but '&' is probably better Huffman coding for this.
You've got it inside out. Unordered is just "does A | B | C" or some such, the | there really being coerced to a set construction, not a junction. In fact, & would work just as well. I only used | because it's more readable. Autocoercion of junctions to sets is, of course, conjectural. You really have does set(A,B,C) The | notation is mentioned in S012:1029, by the way. Obviously you still haven't quite memorized all the synopses. :-) Larry