On 2/6/06, Darren Duncan <[EMAIL PROTECTED]> wrote:
> Speaking briefly, I would like it if Perl 6 provided a way for a
> class (or role, or meta-class, etc) to declare that all variables
> declared to be of that type are automatically/implicitly set to a
> particular value at declaration time, so that they are not undefined
> if the programmer using them doesn't explicitly set a value.
In a somewhat related note, Perl 6 allows this form:
my Dog $fido .= new;
which may be treated as a special form (as is currently the case with Pugs).
However if it's not, it would desugar to:
my Dog $fido;
$fido = $fido.new;
which seem to imply that $fido is set to ::Dog (the dog class) as its
initial value.
However, that would potentially make this a no-op:
my Dog $fido = Dog;
which may make sense except that defined($fido) may need to be regulated
as true even for the "my Dog $fido" case.
If so, your use case can be satisfied by declaring that ::NumType (the
class object)
numifies to 0, and ::StrType stringifies to "", via the coerce<as> form.
Audrey