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