=begin rakudoc :type<minor>
=TITLE Numeration module
=SUBTITLE Creating standard numeration
=for AUTHOR :hidden
Richard Hainsworth aka finanalyst

=for VERSION :hidden
v0.2.1

=head1 Purpose

RakuDoc gives a standard way to number headers and items.

In addition, numerations can be continued.

When a level is incremented in a multilevel numeration,
the next level down is not changed.

When a level is incremented, higher levels start again.

This module can be sub-classed in order to provide different
numbers / behaviours.

=head2 method inc( $level )
Increment the given level, resetting higher levels.
Returns a string of the result.

However, for consistency, a numeration needs to be incremented whenever a
I<num>B<BLOCK> is encountered, so to get 1, the numeration needs to be incremented

=head2 method reset
Reset the counters for all levels.

=head2 errors

If a warning is created when trying an illegal C<:form> string, then the errors
are attached to the Numeration object.

The errors can be retrieved with
    my Numeration $n;
    # later after using it with $n.numvalue
    .say for $n.warnings.list

Warnings are generated, but a fallback is rendered.

=place semantic:AUTHOR :caption<Credits>

=place semantic:VERSION :!toc

=end rakudoc