This single commit contains about 6 weeks of work in which I had made several minor changes to
several essential data types that cascaded into a massive chain of inconsistencies in the type of
the program, hence the program would not compile, and I have resolved not to make any more commits
unless the program can be compiled. Now the last of the type inconsistencies have been resolved and
I am ready to begin updating the Git repository once again.

The changes I made basically can be categorized into the following general categories:
* Modifying the AST to let functions and variables have type annotations.
* Modifying the "Dao.Evaluator" monad to make way for these type annotations, although I have not
	actually written any code that can check types of object values, the infrastructure is there.
* Since I am making modifications to the AST, I have been meaning to flattening the AST so nodes
	contain only singleton data types, making it easier to instantiate 'Dao.Object.AST.toInterm' and
	'Dao.Object.AST.fromInterm'.
* Modified the parsers and pretty printers to handle these changes to the AST.
* Cleaning up the 'Dao.Object.ObjectInterface', modifying the various functions in the "Dao.Evaluator"
	monad to make use of this interface.
* Instantiating more of the data types in the "Dao.Object" module into the 'Dao.Object.Executable'
	class, and cleaning up the existing functions which have instantiated 'Dao.Object.Executable' to
	make more efficient use of the 'Dao.Object.execute' function.
* Instantiated more data types into the 'Dao.Random.HasRandGen' class and cleaning up the
	"Dao.Object.Random" module to make more effective use of 'Dao.Random.randO' function.