Found a very subtle bug which was effecting how tree objects were being constructed. I don't know how I could have introduced this bug (it was probably a type-o) or how it has gone so long without being caught. But running some more tests, it seems the change I have made is a correction.
I am still trying to work out the details of the foreign interface. Now that I am finally starting to write the code that connects basic data types to the objects that can be interpreter, I am finding deficiencies in the code that does this.
Moved the more useful part of the simple API towards the top of the file.
Added some rudimentary APIs for building a command line user interface, with a read-eval-print loop.  Also, added two more 'Dao.Simple.XEval' constructors for creating list objects from the contents of the stack.