Did some basic cleanup of the "Dao.Tree" module. I have eliminated functions that are redundant or obsoleted by the new 'Dao.Tree.UpdateTreeT' monadic API. I also redefined the 'Dao.Tree.insert' and 'Dao.Tree.delete' function to make use of 'Dao.Tree.UpdateTreeT' now.
I want to work on something human-like, so I will be modeling a "Theory of Mind". I have created a Haskell module for doing this.
I am trying to execute a Dao program in a single thread, but I have realized that I don't really have any functionality to do this. For the first time in about half a year I am going back over some of the code that makes the runtime work, and I am seeing many things that could use an upgrade.  First and foremost, I would like to move all runtime functionality to the 'Dao.Object.Exec' monad, and have only a portion of the 'Dao.Object.ExecUnit' (the 'Dao.Object.Runtime') be shared among all modules. I have started writing code to accomplish this.
Completed re-writing the 'Dao.Evaluator.programFromSource' function, this time I am calling it 'Dao.Evaluator.execTopLevel'. It is evaluated entirely within an 'Dao.Object.Exec' monad, it modifies itself, and returns itself.