https://fs.blog/mental-model-hanlons-razor
…it could also help to explain “Haskell being taught as primarily a pragmatic language” - once a definition is monadic, there seems to be no limit on what effects can be accessed: it just depends on the monadic type it’s being used with.
But if the monadic interface and it’s overly-procedural notions really do annoy you, this year’s ZuriHac includes invited talks by Conal Elliott and Gabriella Gonzalez - have they finally solved the puzzle of general-purpose denotative systems programming? If you go, take some extra storage for your preferred “mobile device” - it could be useful ;-)
For I/O, a few probably were (with others having merely been dissatisfied.) But from what I can recall (of what I’ve read), the advent of the monadic interface was embraced “with gusto” by the writers of parsers.
…that being said: staying away from “success at all costs” had an crucial role in making the monadic interface so (in)famous - from 8 of 55 in A History of Haskell: Being Lazy with Class:
(…if the monadic interface could be used to restrain "the I/O leviathan", what couldn’t it do
?)
Back when Haskell was small, both in terms of usage and “supporting staff”, this question may have had some relevance. But the advent of the associated foundation and its various “aggregates” (committees, working groups, etc) would now make it a better question for candidates, instead of the wider Haskell community.