=begin pod :kind("Type") :subkind("role") :category("metamodel")

=TITLE role Metamodel::RolePunning

=SUBTITLE Metaobject that supports I<punning> of roles.

    role Perl6::Metamodel::RolePunning {}

I<Warning>: this role is part of the Rakudo implementation, and is not
a part of the language specification.

Implements the ability to create objects from C<Role>s without the intermediate
need to use a class. Not intended to be used directly (will in fact error if
it's C<use>d), but via punning of roles, as below. This is also Rakudo specific
and not part of the spec.

=for code
role A {
    method b {
      return "punned"
    }
};
my $a = A.new;
say $a.b; # OUTPUT: «punned␤»

=end pod
