My solution to the exercise on p. 352.
1.Rewrite getRandom to use do notation.
getRandom :: Random a => RandomState a
getRandom = do
gen <- get
let (val,gen') = random gen
put gen'
return val
getRandom = do
gen <- get
let (val,gen') = random gen
put gen'
return val