Modified the 'Dao.NewParser.PTable' API to make it more general. Before the 'Dao.NewParser.PTable' was required to store 'Parser' values, but now it can store any function that takes a 'Dao.NewParser.TokenAt' value and evaluates to a polymorphic type. This makes 'Dao.NewParser.PTable' much more flexible, allowing programmers to store functions of an arbitrary number of parameters into the 'Dao.NewParser.PTable'. This flexibility allows me to write fewer parser tables accomplish more. Unfortunately, making it more general also means making the types of these functions more complicated. I have added the 'Dao.NewParser.joinEvalPTable' and similar functions to try and make things easier. The idea is, a programmer may store functions from a 'Dao.NewParser.TokenAt' value to any polymorphic type into an array but the polymorphic type should almost always be simply a 'Dao.NewParser.Parser'.  The 'Dao.NewParser.bindPTable' function has only had it's type changed, but like before, will only operate on tables that store 'Dao.NewParser.Parser' elements.
Modified the 'Dao.NewParser.PTable' API to make it more general. Before the 'Dao.NewParser.PTable' was required to store 'Parser' values, but now it can store any function that takes a 'Dao.NewParser.TokenAt' value and evaluates to a polymorphic type. This makes 'Dao.NewParser.PTable' much more flexible, allowing programmers to store functions of an arbitrary number of parameters into the 'Dao.NewParser.PTable'. This flexibility allows me to write fewer parser tables accomplish more. Unfortunately, making it more general also means making the types of these functions more complicated. I have added the 'Dao.NewParser.joinEvalPTable' and similar functions to try and make things easier. The idea is, a programmer may store functions from a 'Dao.NewParser.TokenAt' value to any polymorphic type into an array but the polymorphic type should almost always be simply a 'Dao.NewParser.Parser'.  The 'Dao.NewParser.bindPTable' function has only had it's type changed, but like before, will only operate on tables that store 'Dao.NewParser.Parser' elements.

printedheart/Dao