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

Sergiu Ivanov sivanov at colimite.fr
Fri Aug 3 12:31:54 UTC 2018

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

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?


[0] https://hackage.haskell.org/package/random-source-
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180803/4a0c19d2/attachment.sig>

More information about the Haskell-Cafe mailing list