[Haskell-cafe] Re: Parsers are monadic?

Jules Bean jules at jellybean.co.uk
Mon Jul 2 04:40:09 EDT 2007

Gregory Propf wrote:
> Thanks, that was helpful.  I didn't realize that there were pure 
> functional monads.

Actually, it's stronger than that. All monads are pure functional, even 
IO. Haskell is an entirely 100% pure functional language[*]. The IO 
monad allows you to build up, in a pure, referentially transparent way, 
an object call an 'IO action' which you have no way of actually 
executing, per se.

Fortunately, this isn't as useless as it sounds since the runtime system 
contains the support to "actually run" the special IO action called 
'main', which bootstraps the whole setup.


[*] non-functions like unsafePerformIO are not technically part of the 
haskell language!

More information about the Haskell-Cafe mailing list