I think he actually meant "MonadIO m =&#62; m a -&#62; m a".<p>Anyway, if I were going to use Haskell-style type signatures in an article about shell scripts written in Perl, I would probably skip the whole typeclass and monad concept, and just say something like:<p><pre><code>   keep :: Action -&#62; Action
</code></pre>
This doesn't say much about the infinite nature of the process, unfortunately, but modeling effects as though they are pure functions just gets you into trouble anyway.  His textual description is much more natural and easier to understand.<p>Anyway, I like articles that combine both Perl and Haskell :)  They make me feel less insane.