I think one of the reasons this debate continues to crop up is that there is a fundamental tension in the design of Haskell:
Haskell strives to be
a) richly typed, leading to "if it compiles, it works!"
b) as general as possible, leading to wide applicability of polymorphic functions
These two laudable goals work against each other. In many instances, we will have to choose between them, and different people will have different judgment calls.