mutability increases complexity by 10x.  Higher kinded types do not, they&#x27;re unfamiliar and a bit weird at fist, but end up <i>simplifying things</i>.<p>Abstractions make code <i>easer</i> to reason about (Go read about parametricity! really!).<p>Mutability doesn&#x27;t even help you from a superficial level for some things.  Sure, if you&#x27;re shoehorning a state monad somewhere, a locally scoped variable might look easier.  However, try to fix &#x27;Futures&#x27; without monads?  It&#x27;s much much less elegant.