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.

	- Update TODO and clean it.
	- Make sure TODO and sourceforge task/issue/whatever trackers are in
	  sync.

Version 0.118: (pushed back from 0.111)
	+ 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 change to MS::Operator guts:
	  - Separate ordinary operands such as the ones found with
	    arithmetic operators and the special operands such as the
	    deriving variable with derivatives.
	    Ordinary operands are to stay in the {operands} hash entry.
	    Special operands are to be put into a new {special} hash entry.
	    {special} is an array ref containing the special operands.
	    These are hashes themselves. They contain certain keys:
	    - type: The type of operand. May be "variable", "tree", "constant",
	      etc. ("identifier" even).
	    - value: The "payload".
	  - All code must be adapted to be aware of this change.
	  - This fixes the trouble one may have when "implementing" a
	    variable used for deriving, etc.
	  - Makes summation possible as a new operator. The function would
	    be the only ordinary operand. Lower, upper, and index variable
	    would all be special.
	- Documentation for the changes.
	- Tests for the changes.

Version 0.130: (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.140: (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

