I'm curious as to why Rat.new initializes instead of leaving as undefined:
> $*RAKU Raku (6.d) > my Rat $p (Rat) > put $p Use of uninitialized value $p of type Rat in string context.Methods .^name, .raku, .gist, or .say can be used to stringify it to something meaningful.
in block <unit> at <unknown file> line 1 > my $q = Rat.new 0 > put $q 0 ---- Peter Scott