This has changed. The former KeyBag is a BagHash now and the code snippet no
longer generates a key "a" with a value "b". Instead it generates a key of type
Pair ("a" => "b") with the corresponding value 1:
$ perl6-m -e 'my $a = BagHash.new( (a=>"b") ); for $a.kv -> $key, $val { say
$key, " isa ", $key.WHAT; say $val }'
"a" => "b" isa (Pair)
1
If I omit the parens around a=>"b" I get an empty BagHash:
$ perl6-m -e 'my $a = BagHash.new( a=>"b" ); say $a.perl'
().BagHash
That looks reasonable to me. Is the ticket closable with tests?