Raku (formerly Perl 6) is built on top of a metaobject protocol:
> Raku is built on a metaobject layer. That means that there are objects (the metaobjects) that control how various object-oriented constructs (such as classes, roles, methods, attributes or enums) behave.