&gt;  Ya I agree that it can be hard to see effects occasionally.<p>Nono. The point is that they should be codified and forbidden in places they shouldn&#x27;t be used. I cannot describe how much this matters to anyone who hasn&#x27;t &quot;absorbed&quot; the Haskell mindset. (That&#x27;s not your fault, it&#x27;s mine. &quot;More research&#x2F;explanation needed&quot; on my part.)<p>&gt; ... and a much better alternative to using Java.<p>Yes, but it only if you use it as a &quot;better Java&quot;. It fails _hugely_ if you try to do anything &quot;advanced&quot;... as in actual FP like lenses and things.<p>&gt; I&#x27;d love to work on haskell or introduce haskell in places that i work but no way in hell would I ever succeed.<p>This is <i>also</i> a cultural problem. Migrate towards microservices and... there you go! Nobody <i>actually</i> cares what it&#x27;s implemented in. (I think this is a somewhat sneaky&#x2F;underhanded way to introduce it, but it... works.)<p>EDIT: If you want to see first-hand what I&#x27;m talking about try &quot;monocle&quot; or &quot;shapeless&quot;, which -- while both being fantastically named and engineered -- fail on actual usage.