Frozen freeze notes the suggested coercion system is admitedly ad hoc.
This document is a companion piece to a similarly named one about protoypes. Defining multiple subroutines with both the same name and the same calling interface that explicitly return items of differing types is now allowed. Perl6 gives us user-defined contexts as well as user defined types or all sorts. The return context is considered before considering the types of the arguments, and in the case of no exact match, the fallback is to a default method defined to work in the given context rather than to the default method for the name, should one exist. This provides a guarantee to a typed variable that it will not be loaded with a value that does not make sense to it.