I think you&#x27;re conflating functional programming with Haskell.<p>You can use something like Clojure without touching monads, just use functional data structures to represent values instead of using objects, and the using mutable state is simple just not the default and you rarely need to go there.<p>In fact if you&#x27;re using something like React and something like Redux you&#x27;re going in that direction from the other side - in Clojure it&#x27;s basically the natural way to solve the problem (and frankly all of their concepts map much better to CLJS than JS)<p>I feel like people pushing Haskell and all of the weirdness that comes from lazy evaluation did more harm to FP perception in the general programmer community than good.