The Entscheidungsproblem has rared it's ugly head, so I have given up trying to get the "Dao.NewParser" module to automatically figure out how to best combine Syntax expressions into a Parser. I have eliminated the 'Syntax' data type, moved everything back into the 'Dao.NewParser.Parser' data type, and now instead provided the 'Dao.NewParser.table' function as alternative to 'Control.Monad.msum' so users of the "Dao.NewParser" module can choose when to combine parsers into a table.