Now using a monad transformer stack, namely EitherT IO.