MonadFix and the Lazy and Strict State Monad
purelyfunctional.org