package mop::manual::details::roles;
# ABSTRACT: A manual for p5-mop

__END__

=pod

=head1 NAME

mop::manual::details::roles - A manual for p5-mop

=head1 DESCRIPTION

TODO

=head1 GRAMMAR

Roles in the p5-mop are defined in the following way:

  role NAME
    ?(with NAME ?(, NAME)*)
    ?(meta NAME)
    ?(is TRAIT ?(, TRAIT)*)
  BLOCK

The C<role> keyword is followed by a name.

Which is optionally followed by the C<with> keyword that is
followed by a comma separated list of the names of the roles
you wish to be composed into your role.

Which is optionally followed by the C<meta> keyword
that is followed by the name of the metarole you wish to
be used in constructing this role.

Which is optionally followed by the C<is> keyword that is
followed by a comma separated list of traits you wish to
be applied to your role.

After this comes a block, within which you can define
methods and attributes (refer to those docs for more info).

=head1 BUGS

Since this module is still under development we would prefer to not
use the RT bug queue and instead use the built in issue tracker on
L<Github|http://www.github.com>.

=head2 L<Git Repository|https://github.com/stevan/p5-mop-redux>

=head2 L<Issue Tracker|https://github.com/stevan/p5-mop-redux/issues>

=head1 AUTHOR

Stevan Little <stevan.little@iinteractive.com>

Jesse Luehrs <doy@tozt.net>

=head1 COPYRIGHT AND LICENSE

This software is copyright (c) 2013-2014 by Infinity Interactive.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.

=cut
