
Hi Lyndon,
Since the example immediately above the exercise used randomRIO, I assumed that randomRIO was to be used as part of the solution to the exercise.
http://en.wikibooks.org/wiki/Haskell/Understanding_monads/State
Also, it was the above mentioned example that introduced me to *liftM2*, about which I posted a question a couple of days ago (subject line: Heavy lift-ing).
The next topic on the wiki page is "Getting Rid of the IO" which seems to be the direction of your post. No doubt I'll have more questions as I plod on.
Thanks for your input,
Michael
--- On Mon, 7/26/10, Lyndon Maydwell