One of the highly-touted features is that if a program compiles, it highly likely to be mostly correct, more so than a program written in a language with a less sophisticated or
Laziness, especially lazy I/O where pure functions can force IO actions or closing a file Handle prior to reading. The Haskell course by Stanford University has good information on this in the Iteratee lecture. Imho, this lecture series is very well written and covers a lot of ground.