Darren Duncan wrote:
Jonathan Lang wrote:
>I see no mention of C<@@x> in this section. I would assume that
>C<@@x> may be bound to any object that does the C<Multidimensional>
>role, with a note to the effect that the C<Multidimensional> role does
>the C<Positional> role (and thus anything that C<@x> may be bound to,
>C<@@x> may also be bound to).
I would argue that "multi-dimensional" is too generic a name for what
you describe. In particular, I wouldn't say that something with that
name "does positional", at least in a conventional sense.
...another reason to consider my more recent suggestion of replacing
'Positional', 'Associative', etc. with 'sigil:<@>', 'sigil:<%>', and
so on. '@@x' would then bind to any object that does 'sigil:<@@>'.
If we have a multidim role, don't make it do positional. Those can
only be combined on a case by case basis. If you do make multidim
positional, then you might as well say that every type does ordered,
because that makes as much sense.
I suggested this because anything that can be bound to '@@' can also
be bound to '@'; this implies to me that 'sigil:<@@>' does
'sigil:<@>'. That said, you have a point, in that '@@' vs. '@' is a
strange dog; an object that is bound to '@@' behaves differently than
one that's bound to '@', which would not be the case if we relied
solely on something to the effect of 'sigil:<@@> does sigil:<@>' to
Jonathan "Dataweaver" Lang