At 4:00 PM -0700 5/23/07, 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.
For example, take a list of vectors, which is a multi-dimensional
structure. Does it make sense to say that a bunch of vectors can be
ordered in a simple deterministic sense? It doesn't make sense
without context or parameters for the ordering.
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.
And the latter is okay per se as long as we just know the purpose of
such is to make a deterministic way to arrange a group of things into
an array, but if it doesn't have meaning besides this, in the general
case. Same as all does Str or all does Bool et al.
-- Darren Duncan