Haskellers agree, that's why we have Template Haskell. We use it for all sorts of things, like automatically implementing typeclasses (interface'ish) at compile-time.
> parallelism, sure Haskell can give that for free
Not really.
>The cost is you have to be pure about everything
Nonsense.
Boom, mutable variables:
http://bitemyapp.com/posts/2014-03-25-when-nested-io-actions...
>sometimes you want explicit control over your threads.
You can have that in Haskell. You can use green threads or OS threads and optionally pin OS threads to a particular CPU to avoid context-switching.
So you can know what you're talking about next time, my recommended guide for Haskell:
https://gist.github.com/bitemyapp/8739525
The concurrency primitives in Haskell are broad and deep, check this book out: http://chimera.labs.oreilly.com/books/1230000000929
--- an ex-Lisper