There's nothing broken about this. .WHAT returns a type object, which
warns when used as a string.
Note that if you use say() instead of print(), say() uses .gist instead
of .Str to turn the type object into a string, which is why you don't
get a warning.
If you want to print the name of a type,
# New Ticket Created by Paweł Pabian
# Please include the string: [perl #116114]
# in the subject line of all future correspondence about this issue.
# https://rt.perl.org:443/rt3/Ticket/Display.html?id=116114 >
rakudo: print now.WHAT
rakudo 7fd707: OUTPUT«use of uninitialized variable $v