HaloO,

John M. Dlugosz wrote:
I'm assuming that the container defines what item assignment means. At the very least, it will have the STORE method. But I want to have infix:<=> definable in general without having to make it masquerade as an Item Container.

I strongly agree with that. It should not be the case that an assignment

   $x = $y;

is compiled down to

   $x.STORE($y.FETCH);

That is, the assignment is a mere syntactic device. The above procedure
should be wrapped in the default implementation

   multi infix:<=> (Any $lhs is rw, Any $rhs)
   {
      $x.STORE($y.FETCH);
   }

Note that due to contravariance the type constraint of $lhs should
actually be the bottom type not Any. OTOH rw is invariant in general.
Only here in assignment the $lhs is write-only. But Perl 6 hasn't
specced that trait on parameters.

Regards, TSa.
--

"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12  -- Srinivasa Ramanujan

Reply via email to