Working over lunch break: modified the 'Dao.Interpreter.objIndexUpdater'
function in the 'Dao.Interpreter.Interface' to use an
'Dao.Interpreter.ObjectFocus' function. Modified the instantiation of
@('Dao.Interpreter.ObjectLens' 'Dao.Interpreter.Hata' ['Dao.Interpreter.Object'])@
and
@('Dao.Interpreter.ObjectFunctor' 'Dao.Interpreter.Hata' ['Dao.Interpreter.Object'])@
to make use of the 'Dao.Interpreter.objIndexUpdater',
'Dao.Interpreter.objIndexer', and 'Dao.Interpreter.objTraverse'.
Simplified the interpreter for executing for-loop expressions, and the
fields of the 'Dao.Interpreter.Interface' data type related to
iteration over data types.
Created the Array built-in data type.
I realized that if the only way to access methods of objects was to
convert the object to a 'Dao.Interpreter.Struct' via the
'Dao.Interpreter.ToDaoStructClass' instance, the entire
'Dao.Interpreter.ToDaoStruct' instance function would have to be
evaluated once for every method call, then when the
'Dao.Interpreter.Struct' was deconstructed, it would have to check that
all of the 'Dao.Interpreter.Struct's were present when deconstructing to
make sure static fields had not been modified. All this setup and
take-down just to call a single function would be tremendously
inefficient.

So I put the 'Dao.Interpreter.objMethodTable' back into the
'Dao.Interpreter.Interface' data type and have modified the instance for
the
('Dao.Interpreter.ObjectLens' 'Dao.Interpreter.Hata' 'Dao.String.Name')
type to first check for the existence of the given 'Dao.String.Name' to
be looked-up or modified within the 'Dao.Interpreter.objMethodTable'. If
it exists in the 'Dao.Interpreter.objMethodTable', rather than updating,
the 'Dao.Interpreter.DaoFunc' is placed into the
'Dao.Interpreter.ObjectFocus' state where it will may be evaluated as a
function call by the instance of
('Dao.Interpreter.ObjectLens' 'Dao.Interpreter.Object' 'Dao.Interpreter.RefSuffix')

Methods are always immutable and shadow any named fields of the object
when it is converted to a 'Dao.Interpreter.Struct'. Modifying a field
that is a method will simply result in a no-op.
Updated to GHC 7.8.2 on Debian, modules are all built to be dynamically
linkable by default. I had to update my .gitignore file to account for
this change.
Updated to GHC 7.8.2, which now complains if you have instantiatd
'Control.Monad.MonadPlus' without also instantiating
'Control.Applicative.Alternative' (an excellent change in my opinion). I
had to update this module to make the warning go away.
Instantiated the 'Dao.Action' and 'Dao.Interpreter.Subroutine' data
types into the 'Dao.Interpreter.ObjectClass' and
'Dao.Interpreter.HataClass' classes. I am preparing to update the
definitions of the built-in "do()" and "doAll()" functions.