(1) Bug fixed: for loops were not dereferencing the expression over which to iterate, this has been fixed. (2) Made error messages a bit more helpful by including location information in the 'Dao.Evaluator.evalObjectRef' function. (3) Cleaned up a few older functions.
There is a bug in the semantics of the parser: variable qualifiers like "global" or "static" are of a very low precedence, assignments like "global a = 0;" are being parsed as "global (a = 0);". Until I fix this, I can modify the test program to make it work correctly: "(global a) = 0;" temporarily solves the problem.
Defined the 'Dao.Object.ostr' function for turning Haskell 'Prelude.String's into 'Dao.Object.OString' strings. I do not know why I have not done this until now.