I don't mean to be cruel, but Haskell is simply not a good language for 2012. It feels like I'm programming for 1983, with the poor syntax and silly idioms. There's a reason that eight out of the ten top programming languages in use today are C or C descendants - C is a great language to read and write, and for 90% of programming tasks (and 99.9% of business programming tasks), how easy it is for the programmer to co…
The Haskell designers identified the main sources of errors in code as mutable state and side effects (network communication, writing to disk, etc), and then constructed a language that enforced isolation of that code into specific containers, monads.
All code outside monads is guaranteed to be purely functional, referentially transparent, immutable, and side-effect free. It's an idea that seems simple in hindsight, but is rather brilliant.
Add to that Haskell's green-thread concurrency and multicore/cpu parallelism is probably one of the best kept secrets in programming these days, and you've got an amazing language and platform for anyone who takes the time to shift to its paradigm.