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