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?