If I follow what you're saying (and this is by no means a certainty :) I would tend to look more for a declarative solution than a callback solution, so I'm imagining that any closure could have a declarator that explicitly captures an outside lexical and makes it available as an attribute. I don't quite want to use "has" though, but it something possessive.
my $x = 42; &f := sub { have $.x; say $x; ... } say &f.x; Here I'm using the plural possesive to indicate that $x is shared, in the same sense that "our" is indicating something that's shared, only in this case it's a shared lexical rather than a shared package variable. Then you'd just use some variant of ordinary introspection to find these methods. But I've probably missed your meta-point entirely... Larry