[Haskell-cafe] State separation/combination pattern question