In E6, Damian write: "A junction is a single scalar value that can act like two or more values at once".
Whenever I see a statement like this, I tend ask myself "What happenned to zero and one?". Perhaps its intentional; perhaps its sloppy writing. What issues arise with junctions of 0 or 1 members? A junction on one element is almost always redundant, and can be cast directly into the scalar that is its eigenstate. The only issue with doing that is that certain junction methods might not be available. However, in the case of a C<none>, an abjunction of one member is meaningful. Junctions of zero elements are interesting in another way. Consider: if $a > any(@values) {...} If there are no @values, is the condition true or false? I think intuition says its false (because there is no value of @values for which it is true) if $a <= all(@values) {...} I find this one slightly harder to intuit. It appears to be a direct flip of the previous case (there are no members of @values that are greater than @a; so all must be less than or equal to a). But there are no members of @values, so its never true, either. Perhaps the result is none(true,false) which, given that we don't have true/false keywords, becomes: none( none(0,"",undef), any(0,"",undef) ), which I think simplifies to "none(none())". So is a junctions of zero and one elements valid? Abjunctions don't seem to have any problems with the concept. Dave.