I like that Jasper classified avoiding language extensions as a mistake. As he mentions, GHC is the de facto standard. And many of the useful extensions, like OverloadedStrings, are basically source transformations. My only complaint is that the Haskell language standard hasn’t kept up with the extensions, so you have to enable a lot to work in a comfortable environment. As Gabriel says:
An idiomatic Haskell program is 20 lines of imports, 6 language extensions, and 1 line of Perl.
Mistake: wildcard pattern matches
This! I only wish the alternative were less boilerplate-y, and/or there was IDE/refactoring support to convert an _ to an explicit case-out.