package mop::manual::details::classes;
# ABSTRACT: A manual for p5-mop
__END__
=pod
=head1 NAME
mop::manual::details::classes - A manual for p5-mop
=head1 DESCRIPTION
TODO
=head1 GRAMMAR
Classes in the p5-mop are defined in the following way:
class NAME
?(extends NAME)
?(with NAME ?(, NAME)*)
?(meta NAME)
?(is TRAIT ?(, TRAIT)*)
BLOCK
The C<class> keyword is followed by a name.
Which is optionally followed by the C<extends> keyword
that is followed by the name of the class you wish to
subclass.
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 class.
Which is optionally followed by the C<meta> keyword
that is followed by the name of the metaclass you wish to
be used in constructing this class.
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 class.
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