It's not a monad because it doesn't return a description of how to carry out I/O that is performed by a separate system; it does the I/O inside the function before returning. That's a regular old interface, not a monad.
So it's the reader monad, then? ;-)
So it's the reader monad, then? ;-)