CM::Group - A parametrized role to abstract the characteristics of a group.
This role will describe the general characteristics of a Group, its attributes, and as much as can be abstracted from the current implementation.
This role will be instantiated with the parameter element_type being the type of the elements that the group will contain.
pacakge SomeGroup; use Moose; with 'CM::Group' => { element_type => 'GroupElement' }; sub _builder_order { # order of the group is computed here } sub compute_elements { # the elements are computed here } sub operation { # group operation is defined here (it's usually a wrapper of the "*" operator of GroupElement) }
Stefan Petrea, <stefan.petrea at gmail.com>