Haskell (and _some_ other pure functional languages, you can't really generalize - there even exist dynamically-types ones!) don't really trade any expressivity to gain safety - although you do tend to express things in different ways once you have support for it. You need to learn a few extra things in order to write imperative-style code as quickly/cleanly/expressively, but those are merely Haskell's codifications of policies you (hopefully!) already adhere to in other languages.
@bob84123 Haskell (and _some_
@bob84123
Haskell (and _some_ other pure functional languages, you can't really generalize - there even exist dynamically-types ones!) don't really trade any expressivity to gain safety - although you do tend to express things in different ways once you have support for it. You need to learn a few extra things in order to write imperative-style code as quickly/cleanly/expressively, but those are merely Haskell's codifications of policies you (hopefully!) already adhere to in other languages.