On Sun, May 01, 2005 at 10:59:59AM -0400, Aaron Sherman wrote:
> On Sat, 2005-04-30 at 16:55 -0700, Brent 'Dax' Royal-Gordon wrote:
> > Aaron Sherman <[EMAIL PROTECTED]> wrote:
> > > On Sat, 2005-04-30 at 22:24 +0800, Autrijus Tang wrote:
> > > > That would be absolutely horrible.
> You all seem to have some very strong opinions, and I'm unable to have a
> discussion around absolutes like "absolutely horrible" and "nope", so
> all hypotheticals aside, I'll just concede that this is an uninteresting
> way to spend our time.

Sorry.  I'll watch my language better in the future, and provide better
rationales to support my opinion. :-/

In this case, the reason I called this "absolutely horrible":

    my Str|Int $x;
    $x.method(); # calls .method twice

Is because to me, it is conceptually no difference to:

    sub foo (Str|Int $x) { $x.method() }; 

In both cases, the junctive type is used to construct a new type that is a
supertype of both Str and Int, for type checking purposes.  If it
silently promotes the variable itself to a Junction for autothreading,
that will render such type construction unusable, as it will be doing
two highly orthogonal things with a single syntax.

Again, my apologies for using strong words without adequate justification.


Attachment: pgpvkCR2varmo.pgp
Description: PGP signature

Reply via email to