NAME
    Class::MakeMethods::ToDo - Ideas, problems, and suggestions

SYNOPSIS
    There are lots of things that could be done to improve this module.

DISTRIBUTION ISSUES
    Issues about the distribution and supporting files, rather than the
    code:

  Documentation

    *   Make sure that the documentation is broken up into
        appropriately-sized chunks, and that people will know which section
        to look at.

    *   As user questions arrive, add the answers as documentation points or
        examples.

    *   Assemble annotated examples and tutorials, and either link to or
        distribute them.

  Tests

    *   Expunge old custom Test module in favor of standard version (except
        for emulation compatibility tests, which should remain untouched).

    *   Use Devel::Coverage to measure test coverage, and fill in missing
        cases.

GENERAL ISSUES
    *   For scalar methods (and others) it would be nice to have a simple
        bounds-checking interface to approve or reject (with an exception)
        new values that were passed in.

        As pointed out by Terrence Brannon, the right interface to adopt is
        probably that of Attribute::Types:

          use Class::MakeMethods::Standard::Hash (
            'scalar' => [ 'count' => { TYPE => 'INTEGER' } ],
            'scalar' => [ 'name' => { TYPE => qr/^[A-Z]\w*$/ } ],
            'scalar' => [ 'account' => { TYPE => &checksum_account_number } ]
          );

    *   Add AUTOLOAD support for clients who wish to have accessors lazily
        built for them when they use them.

          sub AUTOLOAD {
            (my $func = $AUTOLOAD) =~ s/^.*::(_?)//;
            Class::MakeMethods->make( ... => [ $func,... ] );
            if ( my $sub = $1->can( $func ) {
              goto $sub( @_ );
            } else {
              croak sprintf q{Can't locate object method "%s" via package "%s"}, $func, ref( $_[0]);
            }
          }

    *   Improve use of _diagnostic hooks for debugging. Add various "(Q)"
        warning diagnostics.

STANDARD AND COMPOSITE CLASSES
    *   Finish tests for Standard modules.

    *   Finish building Inheritable array and object accessors.

    *   Finish building and testing of Composite::* packages.

    *   Resolve DESTROY-time issues with Standard::Inheritable,
        Composite::Inheritable, and Template::Flyweight.

    *   Add slice and splice functionality to Standard::*:hash and
        Composite::*:hash.

SEE ALSO
    See the Class::MakeMethods manpage for an overview of the
    method-generation framework.

    See the Class::MakeMethods::ReadMe manpage for distribution,
    installation, version and support information.

