I have decided on a design for the mini-Dao application. Essentially there will be two sets of functions: (1) the functions in the 'DaoIO' monad which will be responsible for loading, editing, activating, and deactivating modules (and there will be a mini-Dao built-in module wrapper for these functions). And (2) the functions in the IO monad which are intended to be used from within GHCi which call to the DaoIO functions. All changes in this commit are in the service of this design plan. The code can be built, but there is not enough functionality yet, specifically I am lacking the ability to edit modules.
    Also a noteworthy change: the DaoIO monad now wraps a 'Dao.Predicate.PTran' monad transform which wraps a 'Control.Monad.State.StateT' monad transformer, whereas before it was only a wrapper around the state transformer. This will make it much easier to create a mini-Dao wrapper module for the DaoIO functions.