Patrick R. Michaud wrote:
If I understand S04 correctly, C<undef> should return a Failure object with an unthrown and unhandled exception, and attempting to use the value of the Failure object immediately throws the exception. So, the above call to C<is> needs to be changed, or we need to make C<is> smart enough to properly handle and compare Failure objects in the manner given above.
Not all undefined values are unhandled Failures. It can be an undefined protoobject, possibly even auto-vivifying.
My understanding is that undef by itself will return a generic undef object, whose exact type and other properties are not completely specified in S04 yet. But, it is not "toxic" like an unhandled Failure, which overrides all the methods of the type its but-ed into to 'fail' if called.
I'm working on a complete and comprehensive examination of this area now. It's going slow now that I'm back at $work, but still an active interest.