This file contains the TODO milestones for Math::Symbolic.
+ => Met
- => Not met

Sooner-than-later:
	- Better testsuite as in: bring in some order and better coverage.
	- Clean up documentation.

	- Yes, damnit. I mean it.

Version 0.111: (pushed back from 0.110)
	- New, better example in the main man page.
	- Write a coherent, easy-to-understand, central section on variable
	  signatures and their purpose.
	- Should the operators/functions really be listed in the MS::Operator
	  man page or should they be listed in a more central place like
	  the main man page? Or both? (Duplicate docs are bad!)
	- Whatever's done about that last point, make sure the docs refer to
	  the correct portion about the operator list.

Version 0.120: (major milestone!) [pushed back from 0.110]
	- Instead of all terms being either a Math::Symbolic::Operator, a
	  Math::Symbolic::Variable, or a Math::Symbolic::Constant object,
	  introduce actual Math::Symbolic objects as container objects for
	  any Math::Symbolic trees.
	- These should then also hold symbol tables for variables.
	  Two reasons:
	+ a) The parser can't parse variables without knowing their names
	     in advance. (Update: That's bullshit. The M::S parser now does
	     this perfectly all right.)
	- b) Math::Symbolic objects should then be able to hold other
	     Math::Symbolic objects (which needn't necessarily have an
	     implementation at the time they're used!) as (unknown)
	     functions with a defined signature.
	- Symbol tables for variables.
	- Make sure variables are unique in any Math::Symbolic tree.
	- Store variable values in the symbol table, not in the objects
	  themselves.
	- Make sure that when wrapping operators around Math::Symbolic trees,
	  the operator is *included* in the tree, not the tree included in the
	  operator object as an operand. (And therefore acting as a function
	  with a defined implementation which is not the generally desired
	  behaviour!)
	+ [not necessary any more]
	  According to the previously outlined major changes, make sure the
	  (as of 0.090) current Math::Symbolic::parse_from_string becomes a
	  Math::Symbolic OBJECT ONLY method. (Otherwise, the symbol table for
	  parsing vars is missing.)
	+ Find a solution for the problem that parsers would currently need to
	  be reconstructed for a given symbol table. (performance!)
	  (Now parsing identifiers as vars.)
	- Add tests for the new features.


Version 0.130: (major milestone!)
	- Introduce vector-operators and functions.
	- Math::Symbolic objects to become functions mapping m
	  dimensions onto n dimensions.
	- Math::Symbolic::Operator objects to become operators mapping m
	  dimensions onto n dimensions.
	- Vector product
	- Scalar product
	- Nabla (Hamilton-Operator)
	- Laplace-Operator

Version 0.150: (major milestone!)
Old: [
	- Clean up simplification and split it up into several methods that
	  users can choose to combine into their own set of simplification
	  routines.
	- Add more simplification routines.
	- Add transformation routines for particular types of terms such
	  as polynomials. (Which can be brought into a canonical form.)
]
Instead:
	- Create a Math::Symbolic::Transformation class and a
	  Math::Symbolic::Transformation::Default class.
	- The Math::Symbolic::Transformation::Default class is to contain
	  all builtin simplification and term-transformation routines.
	- All calls to Math::Symbolic methods that cannot be resolved in the
	  Math::Symbolic inheritance hierarchy (which should consist of
	  the package itself, anyhow) and that start with "apply_" should be
	  delegated to the subs named /apply_(NAME)/ in the
	  Math::Symbolic::Transformation package.
	- Math::Symbolic::Transformation should load
	  Math::Symbolic::Transformation::Default.
	- Math::Symbolic::Transformation::Default should inherit from a package
	  named Math::Symbolic::Transformation::Base which defines a special
	  import routine that automatically adds the loaded module to the
	  @ISA of Math::Symbolic::Transformation.
	- Thus, users can extend the number of Math::Symbolic::Transformation's
	  by writing a package with transformation subroutines in it that
	  just inherits from Math::Symbolic::Transformation::Base. Upon use-ing
	  the custom module, the Transformations will automatically be added to
	  Math::Symbolic's transformation repertoire.

	  use Math::Symbolic;
	  use Math::Symbolic::Transformation::MyTransformations;

	  # later:

	  $tree->apply_my_custom_transformation(@args);
	  # Results in the following call:
	  Math::Symbolic::Transformation::MyTransformations($tree, @args);



