Added functions to the "Dao.String" that can be used to lift the 'Data.ByteString.Lazy.ByteString" type into the 'Data.Bits.Bits' class.
Created the 'Dao.Interpreter.XPure' monad for evaluating functions that
produce no IO. Making use of this monad instead of
'Dao.Interpreter.Exec' monad should be safer as it will limit the
functions that can produce side-effects. I intend to use
'Dao.Interpreter.XPure' for the yet-to-be-implemented type checking
system, and also work it into the 'Dao.Interpreter.CallableCode' so
anyone creating Dao foreign functions will have a choice of implementing
a pure function or a function with side effects. The
'Dao.Interpreter.XPure' monad integrates seamlessly with the
'Dao.Interpreter.Exec' monad by way of the 'Dao.Interpreter.execute'
function.

Now, I am also instantiating the type
('Dao.Interpreter.XPure' 'Dao.Interpreter.Object')
into several of the fundamental Haskell classes, including
'Prelude.Num', 'Prelude.Real', 'Prelude.Enum', 'Prelude.Integral',
'Prelude.Fractional', 'Prelude.Floating', 'Prelude.RealFrac', and
'Data.Bits.Bits'.  Next I will re-define the evaluation of Dao
arithmetic infix and prefix operators such that they make use of the
instantiations of
('Dao.Interpreter.XPure' 'Dao.Interpreter.Object')
into the various fundamental Haskell classes.

I have also changed how infix operators make decisions on how to operate
on dissimilar types. Before there was a rule for every possibility, but
now I have added a new API function to the 'Dao.Interpreter.ObjectClass'
class called 'Dao.Interpreter.castToCoreType'. Every fundamental Haskell
data type which instantiates the 'Dao.Interpreter.ObjectClass'
instantiates the 'Dao.Interpreter.castToCoreType' function such that it
may convert itself to any other fundamental type.

Now, when an infix operator like (+) operates on dissimilar types,
first all the explicit "case" statements checking the two types are
evaluated and if the types are within a specific range, the
'Prelude.max' function is used to choose the highest-rated type and
convert the left or right-hand side of the operator to that type, then
evaluate the infix operator.

To accomplish this, what I will call "automatic type negotiation", I had
to re-order the types in the 'Dao.Interpreter.CoreType' class to make
sure the 'Prelude.max' function always returns a type with more
information.