Ada is not a mess. C89 was not a mess. Almost all languages become a mess when the become older or when standard committees are involved. For C++ it was a mess very early. After C++98, it was an awful mess of compiler incompatibilities. Strangely, a usable language seems to have recently emerged from this mess.
forcing strict evaluation feels like a mess,
template haskell feels like a mess,
debugging space leaks feels like a mess,
not to mention that the haskell learning curve is very high
Haskell is pretty good at a lot of things, so don't misunderstand me, Haskell it's really good! But, at the same time, it still has lots of room for improvement. I guess perfection doesn't exist.