Changed how new token identifiers are created in a 'Dao.NewParser.LexBuilder'. Now, every time a token type is created (which is always created with a 'Prelude.String' to uniquely identify it), the string used to create the type is looked-up first. If a token type labeled by that string is already registered, the already-existing token type is returned.
I am now going all-out with the new lexer, completely re-defining the entire Dao scripting language using my "Dao.NewParser" module. It hopefully wont be much longer before the language has been completely re-implemented using the "Dao.NewParser".
Bug fix: eliminated an infinite loop that occurred in the use of the 'Dao.NewParser.rxLimitMin', 'Dao.NewParser.rxLimitMax', and 'Dao.NewParser.rxLimitMinMax' functions. Also, I have discovered that I have been writing regular expressions in the "Dao.Object.NewParser" module as if I were writing POSIX regular expressions, completely forgetting that some of my own functions, for example 'Dao.NewParser.rxRepeat' behave slightly differently that they would in POSIX regular expressions.  I have modified the regular expression functions in "Dao.NewParser" so they now behave a bit more like POSIX regular expressions. Although this might make it easier to accidentally introduce undesired infinite loops, I think in the end it will be less confusing for me, and anyone else who is familiar with regular expressions.