Ever find yourself wanting to generate a tuple of random things? Instances are trivial to write in Haskell 98:
instance (Random a, Random b) => Random (a, b) where
randomR ((loL, loR), (hiL, hiR)) g = ((l, r), g'')
where (l, g') = randomR (loL, hiL) g
(r, g'') = randomR (loR, hiR) g'
random g = ((l, r), g'')
where (l, g') = random g
(r, g'') = random g'
Can we add instances like this to System.Random in the random package?
-- Dan Burton