The version that Ross puts forward is the version that can make sense inside of Base. It fits with the module it is moving into, it doesn't require Base adopting whole-hog the Control.Monad.Error.Class machinery, and it drops [an instance] for a [prelude type] into the [module] where it belongs.
In that vein it makes sense that the basic error type used by transformer-centric [code] should ALSO be a type alias wrapped around ErrorT, rather than an abuse of a prelude type.
-Edward Kmett