I have cleaned-up the "Dao.EnumSet" API and fully re-factored all the code that depends on that module, even the testing modules. The testing program compiles and runs, but has already detected some errors, so more changes will be necessary.
Created the 'evalEnumM' function to be able to extract the value from the 'Dao.EnumSet.SetM' monad.
I am still experimenting with the new 'Dao.NewParser.GenRegex' data type. I am toying around with instantiations into the 'Control.Monad.Monad' and 'Control.Monad.MonadPlus' classes to try and understand better whether or not it makes sense to have a higher-level regular-expression data type to do lexical analysis.