Since I am going to be writing interactive functions for editing parts of mini-Dao modules using a line-editor-like interface, I have created a line-editor-like data type. The new "Dao.StepList" closely follows the API for "Data.List" to make it more intuitive.
In a recent online discussion, I was reminded that it is a good idea to use the ghc -Wall option when compiling and remembered that I had not set that option in my Makefiles. Now it ghc -Wall is properly used. I have also set -fno-warn-name-shadowing -fno-warn-unused-do-bind because I very intentionally and very often shadow names to avoid declaring an unwieldy and confusing number of variables in non-point-free-style code. Also I do not like writing arrows pointing to underscore characters, e.g. do { _ <- eval; return a; }
Added a few more functions for constructing 'StepList's from types, like 'slFromList' and 'slFromArray'. The 'slFromArray' will be especially handy as the "Dao.Simple" module regularly converts between 'StepList's and 'XLIST' objects during data building.
I am now using the "Dao.StepList" module in the various 'DataBuilder' functions related to building and analyzing XLIST data types. The functions I had before for stepping forward and backward through a list constructing or removing elements have all be updated to make use of "Dao.StepList". I will next need to write functions for editing XFUNC objects in the 'DaoIO' monad. Originally I had started work on "Dao.StepList" to make the XFUNC editor and realized it was exactly the same algorithms I had used for the 'DataBuilder' and 'BuilderT' related functions, so I spent my time yesterday just extracting that functionaliy into the "Dao.StepList" module. Now that I have done this, I need to go back to work on the XFUNC editor.