role Metamodel::ParametricRoleGroupHOW

Represents a group of roles with different parameterizations

:for code :solo class Metamodel::ParametricRoleGroupHOW does Metamodel::Naming does Metamodel::Documenting does Metamodel::Stashing does Metamodel::TypePretense does Metamodel::RolePunning does Metamodel::BoolificationProtocol {}

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

A ParametricRoleGroupHOW groups a set of ParametricRoleHOW, every one of them representing a single role declaration with their own parameter sets.

(role Zape[::T] {}).HOW.say; # OUTPUT: «Perl6::Metamodel::ParametricRoleHOW.new␤»
Zape.HOW.say ; # OUTPUT: «Perl6::Metamodel::ParametricRoleGroupHOW.new␤»

ParametricRoleHOWs need to be added to this kind of group:

my \zape := Metamodel::ParametricRoleGroupHOW.new_type( name => "zape");
my \zipi := Metamodel::ParametricRoleHOW.new_type( name => "zipi", group => zape);
say zipi.HOW; # OUTPUT: «Perl6::Metamodel::ParametricRoleHOW.new␤»

Role groups pretend to be of types Mu, Any, and Cool, and delegate methods to Any.

Note: As with most of the Metamodel classes, this one is mainly for illustration purposes and is not intended for the end user to instantiate.

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

Built with Podlite — the markup and publishing tools behind this site.