>>38OCaml
Half-baked shit on so many levels I don't even want to elaborate.
ML derivative languages
Shitty superfluous syntax. fun fun fun val | +| val fun &| | |
Significant whitespace
Is excellent and help keep syntax concise. You're free to use curly-brace shit, though.
The IO monad
At least a basic level of side effects control. Most languages don't have even that.
the IO monad, which serializes everything
What the fuck are you stupid whore blabbering about? Do you even know what "serialization" means?
The advantage is .. unclear
Clean and concise expression of common computational patterns (e.g. "computations that can fail" are very cleanly expressed in the Maybe or Either monads). Also control of the effects any particular piece of code can and cannot invoke.
Unexpressive FFI
Don't know about that, but Haskell has most of things needed from C (like mutable unboxed arrays) built in.
Laziness .. should not be the default. It’s not how any real computers work
Why should the programmer give a shit how "real computers" work? Computers should serve people, not the other way around.
Lack of optional/labelled args
Just use Maybes.
Haskell is widely studied and often pimped, but not used very much
Just go to Hackage or Planet Haskell, you'll see that Haskell is used heavily, in industry too. The ecosystem is quite mature, and people use Haskell for anything from databases to games to websites to you name it.