Haskell restricts what you can do hugely. But also lets you accomplish a whole lot within what it thinks of as safety.
I like Haskell - but think it's really just a playground for trying how far functional purity can be pushed, rather than being the actual best version of that paradigm.
Probably in 10-20 years time there will be a language around which takes all those concepts and comes together as a really pleasant unsurprising friendly developer experience. Maybe it'll come from slow evolution of Haskell... stack helps a lot, and a whole bunch of GHC extensions... but it's still got a lot of very impractical elements and hangovers from the past that really need to go.
I think Scala can probably do anything.
I agree that Haskell is probably not great for writing real world code and should be reserved for toying with ideas about PL and type theory.