role Metamodel::ConcreteRoleHOW

Provides an implementation of a concrete instance of a role
    class Metamodel::ConcreteRoleHOW
        does Metamodel::Naming
        does Metamodel::Versioning
        does Metamodel::PrivateMethodContainer
        does Metamodel::MethodContainer
        does Metamodel::MultiMethodContainer
        does Metamodel::AttributeContainer
        does Metamodel::RoleContainer
        does Metamodel::MultipleInheritance
        does Metamodel::ArrayType
        does Metamodel::Concretization {}

Warning: this class is part of the Rakudo implementation, and is not a part of the language specification.

You can use this to build roles, in the same way that ClassHOW can be used to build classes:

my $a = Metamodel::ConcreteRoleHOW.new_type(name => "Bar");
$a.^compose;
say $a.^roles; # OUTPUT: ยซ(Mu)โคยป

The main difference with ClassHOW.new_type is that you can mix-in roles in this newly created one.

This class is Rakudo specific, and provided only for completeness. Not really intended to be used by the final user.

See Also

class Metamodel::ClassHOW

Metaobject representing a Raku class.

role Metamodel::CurriedRoleHOW

Support for parameterized roles that have not been instantiated

class Metamodel::DefiniteHOW

Metaobject for type definiteness

class Metamodel::EnumHOW

Metaobject representing a Raku enum.

class Metamodel::PackageHOW

Metaobject representing a Raku package.

class Metamodel::Primitives

Metaobject that supports low-level type operations

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.