The key failure of Haskell to appeal to masses is in the Second Hard Problem. Haskell has failed it miserably. (SHP — naming things).

Why? Because no one knew WTF is monads. If you call this fancy set of structures and functions a 'thread' every one can get overall feeling what to expect. It starts, it twists, it ends. We can wave threads into something big.

If 'this thing' is called a table, we can imagine something with fields to fill, rectangular in shape.

What kind of casual properties give us Monad? What to expect from it? Well…

— It's something obscure (check)
— I don't know what it is in real life (check)
— I feel I don't need it (check)
— It provides a nice function composition (no check — how can I guess this by name?)
— It allows to wrap values (no check)

As you can see intuitive description of Monad is 'something obscure and useless'. How can language thrive when it build around such metaphor?

For me the main issue with learning Haskell is the lack of real-world examples available. The tutorials are either something like “let f x = x + 5” or are explaining in-depth about the more obscure concepts like transformers, again without showcasing their practical real-world applications.

...and yet type output works well.

Долго думал, что же такое «type output», и понял только переведя на русский и прочитав снова: всё таки, «type inference».

P.S. Полное понимание данного комментария требует знания русского, не зависимо от, того, на каком языке он написан, а основной посыл поймут все.

Only those users with full accounts are able to leave comments. Log in, please.