role   Metamodel::MultipleInheritance   { } 
Classes, roles and grammars can have parent classes, that is, classes to which method lookups fall back to, and to whose type the child class conforms to.
This role implements the capability of having zero, one or more parent (or super ) classes.
In addition, it supports the notion of hidden  classes, whose methods are excluded from the normal dispatching chain, so that for example nextsame ignores it.
This can come in two flavors: methods from a class marked as is hidden are generally excluded from dispatching chains, and class A hides B adds B as a parent class to A, but hides it from the method resolution order, so that mro_unhidden  skips it.
method   add_parent ( Metamodel :: MultipleInheritance : D :   $ Obj ,  $ parent ,  : $ hides ) 
Adds $parent as a parent type. If $hides is set to a true value, the parent type is added as a hidden parent.
$parent must be a fully composed  typed. Otherwise an exception of type X::Inheritance::NotComposed  is thrown.
method   parents ( Metamodel :: MultipleInheritance : D :   $ obj ,  : $ all ,  : $ tree ) 
Returns the list of parent classes. By default it stops at Cool , Any  or Mu , which you can suppress by supplying the :all adverb. With :tree, a nested list is returned.
class   D   {   } ; 
class   C1   is   D   {   } ; 
class   C2   is   D   {   } ; 
class   B   is   C1   is   C2   {   } ; 
class   A   is   B   {   } ; 
  
say   A . ^ parents ( : all ) . perl ; 
say   A . ^ parents ( : all ,  : tree ) . perl ; 
method   hides ( Metamodel :: MultipleInheritance : D :   $ obj ) 
Returns a list of all hidden parent classes.
method   hidden ( Metamodel :: MultipleInheritance : D :   $ obj ) 
Returns a true value if (and only if) the class is marked with the trait is hidden.
method   set_hidden ( Metamodel :: MultipleInheritance : D :   $ obj ) 
Marks the type as hidden.
  Type relations for Metamodel::MultipleInheritance 
  
perl6-type-graph 
Metamodel::MultipleInheritance 
Metamodel::MultipleInheritance 
 
Mu 
Mu 
 
Any 
Any 
 
Any->Mu 
Metamodel::Naming 
Metamodel::Naming 
 
Metamodel::Documenting 
Metamodel::Documenting 
 
Metamodel::Versioning 
Metamodel::Versioning 
 
Metamodel::MethodContainer 
Metamodel::MethodContainer 
 
Metamodel::PrivateMethodContainer 
Metamodel::PrivateMethodContainer 
 
Metamodel::MultiMethodContainer 
Metamodel::MultiMethodContainer 
 
Metamodel::AttributeContainer 
Metamodel::AttributeContainer 
 
Metamodel::RoleContainer 
Metamodel::RoleContainer 
 
Metamodel::Stashing 
Metamodel::Stashing 
 
Metamodel::TypePretense 
Metamodel::TypePretense 
 
Metamodel::RolePunning 
Metamodel::RolePunning 
 
Metamodel::ParametricRoleHOW 
Metamodel::ParametricRoleHOW 
 
Metamodel::ParametricRoleHOW->Metamodel::MultipleInheritance 
Metamodel::ParametricRoleHOW->Any 
Metamodel::ParametricRoleHOW->Metamodel::Naming 
Metamodel::ParametricRoleHOW->Metamodel::Documenting 
Metamodel::ParametricRoleHOW->Metamodel::Versioning 
Metamodel::ParametricRoleHOW->Metamodel::MethodContainer 
Metamodel::ParametricRoleHOW->Metamodel::PrivateMethodContainer 
Metamodel::ParametricRoleHOW->Metamodel::MultiMethodContainer 
Metamodel::ParametricRoleHOW->Metamodel::AttributeContainer 
Metamodel::ParametricRoleHOW->Metamodel::RoleContainer 
Metamodel::ParametricRoleHOW->Metamodel::Stashing 
Metamodel::ParametricRoleHOW->Metamodel::TypePretense 
Metamodel::ParametricRoleHOW->Metamodel::RolePunning 
Metamodel::ConcreteRoleHOW 
Metamodel::ConcreteRoleHOW 
 
Metamodel::ConcreteRoleHOW->Metamodel::MultipleInheritance 
Metamodel::ConcreteRoleHOW->Any 
Metamodel::ConcreteRoleHOW->Metamodel::Naming 
Metamodel::ConcreteRoleHOW->Metamodel::Versioning 
Metamodel::ConcreteRoleHOW->Metamodel::MethodContainer 
Metamodel::ConcreteRoleHOW->Metamodel::PrivateMethodContainer 
Metamodel::ConcreteRoleHOW->Metamodel::MultiMethodContainer 
Metamodel::ConcreteRoleHOW->Metamodel::AttributeContainer 
Metamodel::ConcreteRoleHOW->Metamodel::RoleContainer 
Metamodel::C3MRO 
Metamodel::C3MRO 
 
Metamodel::MROBasedMethodDispatch 
Metamodel::MROBasedMethodDispatch 
 
Metamodel::MROBasedTypeChecking 
Metamodel::MROBasedTypeChecking 
 
Metamodel::NativeHOW 
Metamodel::NativeHOW 
 
Metamodel::NativeHOW->Metamodel::MultipleInheritance 
Metamodel::NativeHOW->Any 
Metamodel::NativeHOW->Metamodel::Naming 
Metamodel::NativeHOW->Metamodel::Documenting 
Metamodel::NativeHOW->Metamodel::Versioning 
Metamodel::NativeHOW->Metamodel::Stashing 
Metamodel::NativeHOW->Metamodel::C3MRO 
Metamodel::NativeHOW->Metamodel::MROBasedMethodDispatch 
Metamodel::NativeHOW->Metamodel::MROBasedTypeChecking 
Metamodel::Finalization 
Metamodel::Finalization 
 
Metamodel::DefaultParent 
Metamodel::DefaultParent 
 
Metamodel::Trusting 
Metamodel::Trusting 
 
Metamodel::BUILDPLAN 
Metamodel::BUILDPLAN 
 
Metamodel::Mixins 
Metamodel::Mixins 
 
Metamodel::BoolificationProtocol 
Metamodel::BoolificationProtocol 
 
Metamodel::ClassHOW 
Metamodel::ClassHOW 
 
Metamodel::ClassHOW->Metamodel::MultipleInheritance 
Metamodel::ClassHOW->Any 
Metamodel::ClassHOW->Metamodel::Naming 
Metamodel::ClassHOW->Metamodel::Documenting 
Metamodel::ClassHOW->Metamodel::Versioning 
Metamodel::ClassHOW->Metamodel::MethodContainer 
Metamodel::ClassHOW->Metamodel::PrivateMethodContainer 
Metamodel::ClassHOW->Metamodel::MultiMethodContainer 
Metamodel::ClassHOW->Metamodel::AttributeContainer 
Metamodel::ClassHOW->Metamodel::RoleContainer 
Metamodel::ClassHOW->Metamodel::Stashing 
Metamodel::ClassHOW->Metamodel::C3MRO 
Metamodel::ClassHOW->Metamodel::MROBasedMethodDispatch 
Metamodel::ClassHOW->Metamodel::MROBasedTypeChecking 
Metamodel::ClassHOW->Metamodel::Finalization 
Metamodel::ClassHOW->Metamodel::DefaultParent 
Metamodel::ClassHOW->Metamodel::Trusting 
Metamodel::ClassHOW->Metamodel::BUILDPLAN 
Metamodel::ClassHOW->Metamodel::Mixins 
Metamodel::ClassHOW->Metamodel::BoolificationProtocol 
 
 
  
    Expand above chart