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.  :-)


Reply via email to