Larry wrote:

I don't think we can allow this situation to stand.  Either we have
to make != and !~ and ne transform themselves via "not raising", or
we have to disallow negative comparisons on junctions entirely.


Making them DWIM here would be a mistake, since the dwimmery would disappear if anyone refactored:

    if $note != $do | $re | $me {...}

to the supposedly identical:

    if $note != $do || $note != $re || $note != $me {...}

That would be a bad outcome...pedagogically as well as from a maintainability point-of-view.

I'd say we have to disallow negative comparisons against explicit (compile-time) junctions. That is, against expressions that explicitly use |/&/^ or any/all/one/none.

Negative comparisons against implicit (run-time) junctions:

    if $note != $bad_note {...}

still have to be allowed.


Reply via email to