Experimenting with an error monad