Adding ToError instances and making liftEitherT more abstract