[Haskell] strict vs. lazy state threads