Removed the profiling options from the make script. Also, I realzied
that I had been using the "find" shell command to select the list files that
had been updated and used had used that list of files as both the
prerequisites for the targets of the Makefile, which is necessary to get
the "make" program to trigger the build rule when files have been
updated, but I also used this list of updated files as the command line
parameters to GHC, which is NOT necessary because GHC only needs the
"Main" module passed on the command line and from that it computes it's
own dependency tree regardless of what has happened in the "make"
script. So I removed the list of updated files from the command line
parameters to GHC. This tweak causes the Makefile to behave more
appropriately.
Added the 'Dao.Binary.putUnwrappedWith' and
'Dao.Binary.getUnwrappedWith' functions because I discovered a case
where functions like these could be used (although I have not used them
anywhere myself yet).
Refactored: I have separated the entire Abstract Syntax Tree (AST) into
it's own module "Dao.Interpreter.AST", and the "Dao.Interpreter" module
imports these data types. This means the AST no longer depends on the
'Dao.Interpreter.Object', effectively separating the primitive data
types from the syntax. That means you can use the exact same syntax tree
with any arbitrary set of primitive data types. Before this update, the
primitive data type was fixed on "Dao.Interpreter.Object".

This change has created a new opportunity: the AST is now a Functor! All
data types comprising the AST now instantiate 'Data.Functor.Functor'.
This means anyone can make the primitive data type of the language
anything they want. For example, you can re-define Dao to work with only
integers, or only strings, or a type "data O = I Int | S String", or
only 'Dao.Interpreter.ObjType's. I intend to use this to implement a
type checking system.

The test suite has run, I can confirm that this refactoring has had no
ill effect on the Dao language semantics.

TODO: clean up the code, try to order the data types in the source file
according to some kind of intuitive order. Document everything.