I wrote: > I'd expect the .WHICH string to be something like >"Pair|Str|a|Scalar|47608575457088".
Upon further investigation, I think this requires multi method WHICH(Pair:D:) { "Pair|" ~ $!key.WHICH ~ "|" ~ $!value.VAR.WHICH } That is, .VAR needs to be applied to $!value, which isn't currently in the WHICH method. My original suggestion of merely using the existing non-container branch of the WHICH method, without this fix, would cause the WHICH to reflect the identity of the value in the container. That outcome is what Liz then pointed out would be incorrect, though it was never what I intended. -zefram