I flipped around the type variables for the error and state type in the 'Dao.Predicate.PredicateState' data type to make it more consistent with other monad transformers. The reason I initially put the state type before the error type was to provide an indication that this was a 'Control.Monad.State.StateT' monad transformer lifted into a 'Dao.Predicate.PredicateT' monad transformer, and not the other way around. But for every other monad transformer I have ever used, the convention is that the error type always comes first, before the state type if there is one. So when it actually came time for me to use the 'Dao.Predicate.PredicateState' monad transformer, I wrote my code according to this convention of error first state second, and of course I was very confused when it didn't type check. No more of this, I am going back to the "normal" convention of putting the error type before the state type.
I flipped around the type variables for the error and state type in the
'Dao.Predicate.PredicateState' data type to make it more consistent with
other monad transformers. The reason I initially put the state type
before the error type was to provide an indication that this was a
'Control.Monad.State.StateT' monad transformer lifted into a
'Dao.Predicate.PredicateT' monad transformer, and not the other way
around. But for every other monad transformer I have ever used, the
convention is that the error type always comes first, before the state
type if there is one. So when it actually came time for me to use the
'Dao.Predicate.PredicateState' monad transformer, I wrote my code
according to this convention of error first state second, and of course
I was very confused when it didn't type check. No more of this, I am
going back to the "normal" convention of putting the error type before
the state type.

printedheart/Dao