Bug fix for old ghc
Revamped monad hierarchy