=head1 TODO for Parse-Taxonomy

TODO list for Perl module Parse::Taxonomy

=head2 Filehandle as argument

What would it mean for a Parse::Taxonomy subclass to accept a
filehandle as an argument, rather than a file?  Would that be difficult to
implement?

=head2 Data migration example

Cookbook:  Include recipe for predicting the result of a data migration
between relational database tables.

=head2 Remove C<child_counts()> and C<get_child_count()>

In Internet discussions of hierarchical data, one often sees a distinction
between the B<children> of a node and the B<descendants> of a node.  The
former term usually means "first-generation only", whereas the latter usually
means "all subsequent generations."

C<Parse::Taxonomy::MaterializedPath::child_counts()> and C<get_child_count()>
are documented as returning the count of all descendants of a node, I<i.e.,> a
multi-generational count for either all nodes (C<child_counts()>) or for one
particular node (C<get_child_count()>).  Hence, these methods would be better
named C<descendant_counts()> and C<get_descendant_count()>, respectively.

C<child_counts()> and C<get_child_count()> are deprecated as of v0.16.  Remove
them and their associated unit tests in the first CPAN release after
January 1, 2016.

=head2 Nested Sets

=head3 Methods in existing packages

A method in Parse::Taxonomy::MaterializedPath that would generate a Perl data
structure holding a taxonomy-by-nested-set equivalent to that in the object.

A method in Parse::Taxonomy::AdjacentList that would generate a Perl data
structure holding a taxonomy-by-nested-set equivalent to that in the object.

=head3 New package

Explore creation of a Parse::Taxonomy::NestedSet package which would
take as input a taxonomy-by-nested-set (via a CSV file or via a C<components>
interface), created a NestedSet object against which methods such as
C<descendant_counts()>, C<pathify()> and C<adjacentify()> would be callable.

=head2 Speed Up C<descendant_counts()> and C<get_descendant_count()>

Up through v0.16, these methods in Parse::Taxonomy::MaterializedPath are
extremely slow.  See if they can be sped up.  IN PROGRESS.  Next step:
explore generation of path depth table from inside C<descendant_counts()> to end
of C<new()>.

=cut
