Brandon Allbery via RT wrote:
>                                 the likely outcome of your insistence on
>treating it as first class is that .VAR will end up being removed or
>restricted to keep the Scalar from escaping

I'm treating as first class those things that are presented as first
class.  There's a lot of reification in Perl 6, and generally it looks
deliberate, with Perl 6 intended to serve as its own metalanguage.
If containers are not meant to be part of the visible language then by
all means make them invisible.

FWIW, I think Scalar is a good reification, and the language would
be better with it being visible, provided that everything relevant
can handle it.  I also think that the latter condition is achievable.
Conversely, with Scalar being so semantically significant, dereifying it
would make things more confusing.  This is not a blanket opinion about
reification: for example, I think reifying Slip was a poor choice.

>                                              You've created a mutable-key
>Pair,

As with [perl #128948], that's not really the Pair being mutable.  I can
create two Pairs referencing as their keys the same Scalar, and that's
visibly different from each Pair having its own mutable key storage.
In fact the Pair is immutably referencing a mutable Scalar.  The immutable
Pair's .WHICH would be fine if it looked only at the identity of the
immutably-referenced object, and avoided looking inside that mutable
object.  It is just an inconvenience for the Pair.WHICH implementor that
looking inside a bound container is the default behaviour.

-zefram

Reply via email to