For the rest of you, when somebody describes Haskell in this manner you can be assured of a few things.
One, they don't know Haskell better than extremely superficially. Two, they don't understand parametricity and haven't read the papers. Three, they don't know what it's like to do the same kind of work (day-to-day programming) in a dependent type system.
I personally call Haskell's type system "paranoid". Yet I have no difficulty asserting that it's way more flexible than C++'s or even Ocaml's (which makes you route around the value restriction, and the lack of type classes).
I love paranoid type systems: they debug my thinking up front.
For the rest of you, when somebody describes Haskell in this manner you can be assured of a few things.
One, they don't know Haskell better than extremely superficially. Two, they don't understand parametricity and haven't read the papers. Three, they don't know what it's like to do the same kind of work (day-to-day programming) in a dependent type system.