Finally quit procrastinating and created a 'Dao.PPrint.PPrint' function hook in the 'Dao.Evaluator.ObjectInterface'. Now Dao objects can "inherit" a pretty-printing method from the object's Haskell language instantiation of 'Dao.PPrint.PPrintable'.
Bug fix: 'Dao.Evaluator.ExecUnit's were initialized without a default built-in functions list, and the default built-in functions dictionary was not being inherited from the top-level 'Dao.Evaluator.ExecUnit' by imported modules, so every module loaded had an empty 'Dao.Evaluator.builtinFunctions' dictionary. I changed the "Dao.Evaluator" API so that now, an imported 'Dao.Evaluator.ExecUnit' can only be created within a 'Dao.Evaluator.Exec' monad, and the imported module will now inherit the 'Dao.Evaluator.builtinFunctions' (and other properties) from the 'Dao.Evaluator.ExecUnit' that is retrieved when evaluating 'Control.Monad.Reader.Class.ask'. To prevent anyone from making this mistake, I have decided to hide the 'Dao.Evaluator.initExecUnit' function, therefore it will no longer be possible to initialize an 'Dao.Evaluator.ExecUnit' that is completely devoid of 'Dao.Evaluator.builtinFunctions'. The very first 'Dao.Evaluator.ExecUint' will be initialized internal to the 'Dao.Evaluator.startDao' function, where the 'Dao.Evaluator.builtinFunctions' and 'Dao.Evaluator.globalMethodTable' are first installed.
I had long ago changed the name of the file "tests/Dao/SingleTest.hs" to "tests/Dao.CoreTests.hs", but forgot to update that change in the edit-files.list which was causing a minor annoyance every time I tried to switch to the 'Dao.CoreTests' module in my editor.
Fixed the error reporting by updating the 'Dao.PPrint.PPrintable' instance of 'Dao.Evaluator.ExecControl'. I am still not completely certain if I like how the output formatted, but it is better than before.
Error reports now indicate the source file in which the error occurred, updated the instantiation of 'Dao.Evaluator.ExecControl' of the 'Dao.PPrint.PPrintable' class.
Updated how the top-level of a Dao script is evaluated. Now, 'Dao.Evaluator.TopLevelExpr's instantiates the 'Dao.Evaluator.execute' function. Also, the 'Dao.Evaluator.Program' instance of the 'Dao.Evaluator.execute' function properly shifts the local variables that were defined in the top level of the script into to the global variable store. My test script now can be loaded without errors occurring. I still need to debug the string execution mechanism, it is not working.