Switched to using MonadLib from mtl