documentation of difference between lazy and strict State monad