Getting ready to replace the old binary serializer algorithms with the new one I just wrote.
Created a VLI encoder/decoder for 'Prelude.Integer' types that does not loop infinitely on negative integer values. Also tweaked the VLI algorithm that existed before, which is still used for fixed bit length integer data types.
As I continued to work on the new "Dao.Binary" module yesterday and this evening, I gradually came to realize that everything needed to be dumped into the "Dao.Object" module, the data types I have declared all make use of one another somehow, and I just cannot keep the data types apart from each other.

But I recognized this as a design flaw, and coupled with the problem that the "Dao.Object" and "Dao.Execute" modules have become most unwieldy, I have decided to force my code to become more modular. Unfortunately, this means moving data types into separate modules and making them polymorphic for no reason other than to prevent it from requiring the specific types that tie them to the "Dao.Object" module. And wit this additional polymorphism comes a lot of extra typing, both with the keyboard and with explicitly specifying type variables, and a lot of copy-pasting as well.  But I have decided having more complicated types is a worth while trade-off in being able to break up the "Dao.Object" module.

For now I have created just one new module: "Dao.Runtime" (which existed before but for a different purpose). This time, I have made "Dao.Runtime" as independent of other modules as possible, while providing a set of APIs for tying all the other modules together, namely the 'Dao.Runtime.ObjectClass".

Then redefined all the types in all the functions in "Dao.Binary" and "Dao.Struct" so instead of taking 'Dao.Object.Object's, they take a polymorphic type which will be bound to 'Dao.Object.Object' when used elsewhere.