The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CM::Group - A parametrized role to abstract the characteristics of a group.

VERSION

version 0.4

DESCRIPTION

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.

SYNOPSIS

    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)
    }

AUTHOR

Stefan Petrea, <stefan.petrea at gmail.com>