Brandon Allbery via RT wrote:
>This should be your hint. Enums *are* numeric, specifically Int.

I'm aware of that, and that's why I call this an LTA rather than
a bug, and why I didn't say conclusively which coercion was wrong.
Indeed, on the basis of the enum/Int subclassing, I proposed in [perl
#127019] that the inconsistency that then existed between Bool.Int and
Bool.Numeric coercions ought to be resolved by making both return the
operand unchanged.  The decision was made the other way, that they should
both return a basal Int.

So I'm not saying in this ticket that it's a priori wrong for True.Real
to return True.  On the contrary, the fact that True.^does(Real) makes
that a priori a reasonable answer.  The problem is that it's inconsistent
with the results for the similar .Int and .Numeric coercions, and with the
decision on those coercions that was made in [perl #127019].  There are
two ways in which these coercions can be made mutually consistent,
and either would resolve this ticket.

>I don't know what language you are trying to force Perl 6 to be,

I'd like it to be a self-consistent language, as far as possible.
I don't recall anyone saying yet that that's an undesirable principle
in the design of Perl 6.

-zefram

Reply via email to