
Hi, I am trying to use the output value from the random function to generate the random generator for the next value in list. Below is the code - ---- import System.Random myrandoms :: (RandomGen g, Random a) => g -> [a] myrandoms gen = let (value, newGen) = random gen in value:myrandoms (mkStdGen (value::Int)) ---- however the compilation fails when the module is loaded - [1 of 1] Compiling Main ( myrandoms.hs, interpreted ) myrandoms.hs:3:80: Could not deduce (a ~ Int) from the context (RandomGen g, Random a) bound by the type signature for myrandoms :: (RandomGen g, Random a) => g -> [a] at myrandoms.hs:2:14-48 `a' is a rigid type variable bound by the type signature for myrandoms :: (RandomGen g, Random a) => g -> [a] at myrandoms.hs:2:14 Relevant bindings include value :: a (bound at myrandoms.hs:3:22) myrandoms :: g -> [a] (bound at myrandoms.hs:3:1) In the first argument of `mkStdGen', namely `(value :: Int)' In the first argument of `myrandoms', namely `(mkStdGen (value :: Int))' ---------- Even though I am converting my 'value' parameter to Int in my new generator, I am unable to see the error behind this. Please can someone explain or even better provide a fix. Thanks, Shishir