title: How difficult is Haskell multi-threading?
body: <p>I have heard that in Haskell, creating a multi-threaded application is as easy as taking a standard Haskell application and compiling it with the <code>-threaded</code> flag. Other cases, however, have described the use of a <code>par</code> command within the actual source code.</p>
  
  <p>What is the state of Haskell multi-threading? How easy is it to introduce into programs? Is there a good multi-threading tutorial that goes over these different commands and their uses?</p>