Rules / Types, classes & roles / metamodel

Metamodel::ConcreteRoleHOW Reference

Provides an implementation of a concrete instance of a role

What it is #

Examples, run three ways #

Every example below comes from the official documentation, together with the output that documentation asserts. Each was then executed by Rakudo and by Raku++ when this page was built. Where the three agree, one result is shown; where they do not, all three are — because which of them is wrong is exactly the information worth having.

1 all-differ · 1 no-output

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 {}

Not executed: the documentation states no expected output for this example.

my $a = Metamodel::ConcreteRoleHOW.new_type(name => "Bar");
$a.^compose;
say $a.^roles; # OUTPUT: «(Mu)␤»
Documentation
(Mu)
Rakudo
()
Raku++

All three differ. Needs a human.

Not yet examined. Which of these is correct has not been established — do not treat either engine as settled here.