using interact with state, was Re: [Haskell-cafe] applicative challenge