txt: ## rolecontainer.md
  role Metamodel::RoleContainer
  
  Metaobject that supports holding/containing roles
  
  ```raku
  role Metamodel::RoleContainer {}
  ```
  
  *Warning*: this role is part of the Rakudo implementation, and is not a part of the language specification.
  
  Implements the ability to hold roles to be held for composition.
  
  ```raku
  class A does SomeRole {}
  
  ```
  
  roughly corresponds to
  
  ```raku
  class A {
      BEGIN A.^add_role(SomeRole);
  }
  
  ```
  
  # [Methods](#role_Metamodel::RoleContainer "go to top of document")[§](#Methods "direct link")
  
  ## [method add\_role](#role_Metamodel::RoleContainer "go to top of document")[§](#method_add_role "direct link")
  
  ```raku
  method add_role($obj, Mu $role)
  ```
  
  Adds the `$role` to the list of roles to be composed.
  
  ## [method roles\_to\_compose](#role_Metamodel::RoleContainer "go to top of document")[§](#method_roles_to_compose "direct link")
  
  ```raku
  method roles_to_compose($obj --> List:D)
  ```
  
  returns a list of roles added with `add_role`, which are to be composed at type composition time.
  