The
roles vocabulary provides a form of tuple interface that can be implemented by concrete tuple classes. A
role definition is a mixin class that also prescribes a set of tuple slots. Roles are not tuple classes by themselves and cannot be instantiated by
new . The vocabulary extends
ROLE-TUPLE: syntax to allow concrete tuple types to declare membership to one or more roles, automatically including their prescribed slots.
The role superclass:
role
Syntax for making a new role:
ROLE:
Syntax for making tuples that use roles:
ROLE-TUPLE:
Errors with roles:
multiple-inheritance-attempted ( classes -- * )
role-slot-overlap ( class slots -- * )