I feel very strongly that my understanding of state has both improved and become far simpler after programming intensely in Haskell for a long while. State in mutable languages is just too big to have a meaningful way to think about it on its own. Much of my Hs code lives in the state monad today, but I am never at a loss as to what that means exactly.