Something is wrong with handles

delegate all methods to the attribute without first attempting the enclosing class's mro -- might be valuable

I'm having a hard time thinking of many cases where it's not essential... there are so many methods and attribute getters defined on Any that you are going to trip over them (even the ones that don't show up when you ask for them).

I looked at the error message you got, and tried adding is Hash to Foo's class declaration. Then everything worked.

That's not a red herring. You can't do that ... well, you can, but you won't get what you might expect:

$ cat x.p6
class Foo is Hash {
  my $counter;
  method AT-KEY(\key) {
    $counter++;
    nextsame;
  }
}
my $foo = Foo.new;
$foo<a> = 1;
say $foo<a>;
say $foo.counter;
$ perl6 x.p6 
1
No such method 'counter' for invocant of type 'Foo'
  in block <unit> at x.p6 line 11

This is a long-standing and very well known (to the folks working on that part of the internals) issue. There's even an issue for it somewhere where some future improvement is said to maybe resolve it. But no, you can't have nice things on sub-classes of Hash.

THUS DELEGATION.

And you see where I came in ;-)

/r/perl6 Thread Parent