[Haskell-cafe] [random-fu] sampleRVar with StdGen in RWS?

Vanessa McHale vanessa.mchale at iohk.io
Fri Aug 3 12:43:09 UTC 2018


It seems like you need your write-state to be a monoid in order to infer
a `MonadRandom` instance. Based on your code, I'm guessing the compiler
can't infer that.

Have a look at
https://hackage.haskell.org/package/MonadRandom-0.5.1.1/docs/Control-Monad-Random-Class.html#t:MonadRandom


On 08/03/2018 07:31 AM, Sergiu Ivanov wrote:
> Dear Café,
>
> I would like to use random-fu to do some pseudo-random simulations for a
> given StdGen (so that I can run the same simulation multiple times, if
> needed).
>
> The following works:
>
>   testState :: StdGen -> Int
>   testState = evalState (sampleRVar $ uniform 1 10)
>
> The following doesn't:
>
>   testRWS :: StdGen -> Int
>   testRWS = fst . evalRWS (sampleRVar $ uniform 1 10) ()
>   
> I get
>
>   <interactive>:2:26: error:
>   • No instance for (MonadRandom (RWST () b0 StdGen Identity)) arising from a use of ‘sampleRVar’
>   • In the first argument of ‘evalRWS’, namely ‘(sampleRVar $ uniform 1 10)’
>   In the second argument of ‘(.)’, namely ‘evalRWS (sampleRVar $ uniform 1 10) ()’
>   In the expression: fst . evalRWS (sampleRVar $ uniform 1 10) ()
>
> Indeed, I do see a MonadRandom instance for StateT, but none for RWST [0].
>
> Is there a reason to not have a MonadRandom instance for RWST?
>
> Am I looking in the wrong place?
>
> -
> Sergiu
>
> [0] https://hackage.haskell.org/package/random-source-0.3.0.6/docs/Data-Random-Source.html
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

-- 



*Vanessa McHale*
Functional Compiler Engineer | Chicago, IL

Website: www.iohk.io <http://iohk.io>
Twitter: @vamchale
PGP Key ID: 4209B7B5

Input Output <http://iohk.io>

Twitter <https://twitter.com/InputOutputHK> Github
<https://github.com/input-output-hk> LinkedIn
<https://www.linkedin.com/company/input-output-global>


This e-mail and any file transmitted with it are confidential and
intended solely for the use of the recipient(s) to whom it is addressed.
Dissemination, distribution, and/or copying of the transmission by
anyone other than the intended recipient(s) is prohibited. If you have
received this transmission in error please notify IOHK immediately and
delete it from your system. E-mail transmissions cannot be guaranteed to
be secure or error free. We do not accept liability for any loss,
damage, or error arising from this transmission
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180803/86761a04/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: OpenPGP digital signature
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180803/86761a04/attachment.sig>


More information about the Haskell-Cafe mailing list