Weeeell, how else could that be organised? (I’ll try to think myself back to when Haskell was all new to me.)
Compare those big, sprawling languages. (You know who I mean, but I was a COBOL and SQL programmer for two decades.)
There’s C with preprocessor/macros overlaid (in effect a different language in the same source file) with C++ overlaid as a superset (does that really work?) with Template C++ overlaid.
Java I don’t know well but it seems to be a verbose mess.
Haskell starts with a small, perfectly-formed language (H2010) delivered with a comprehensive Prelude and feature-rich libraries. That’s what hooked me to start with. Then you hit limitations, and you discover there’s an extension for that. And you’ll note Haskell is also a research language, so some extensions count as ‘experimental’/not mature; you can avoid those.
Can you use a disciplined subset of C/Java like that and have the compiler warn you you’re straying into dangerous territory? If you find a library/package that seems to fit your need, can you quiz it as to whether it’s using unfamiliar constructs? Or do you have to learn/know the language as a homogenous blob? Perhaps you already got a “brain upgrade” to work with those languages, but they took up so much brainpower they squeezed out the memory?