Here's a nice explanation of Haskell IO: http://stackoverflow.com/questions/13536761/what-other-ways-...