git.iko.soy/typeable/pandoc
on master help sign in
Split the RNG so they don't end up equal again after 1 call to next (#6227)
40fd20dJoseph C. Sible
src/Text/Pandoc/Class/PandocPure.hs+5−5
@@ -40,7 +40,7 @@ import Data.Word (Word8)
40import System.Directory (doesDirectoryExist, getDirectoryContents)
40import System.Directory (doesDirectoryExist, getDirectoryContents)
41import System.FilePath ((</>))
41import System.FilePath ((</>))
42import System.FilePath.Glob (match, compile)
42import System.FilePath.Glob (match, compile)
43−import System.Random (StdGen, next, mkStdGen)
43+import System.Random (StdGen, split, mkStdGen)
44import Text.Pandoc.Class.CommonState (CommonState (..))
44import Text.Pandoc.Class.CommonState (CommonState (..))
45import Text.Pandoc.Class.PandocMonad
45import Text.Pandoc.Class.PandocMonad
46import Text.Pandoc.Error
46import Text.Pandoc.Error
@@ -168,10 +168,10 @@ instance PandocMonad PandocPure where
168 getCurrentTimeZone = getsPureState stTimeZone
168 getCurrentTimeZone = getsPureState stTimeZone
169
169
170 newStdGen = do
170 newStdGen = do
171− g <- getsPureState stStdGen
171+ oldGen <- getsPureState stStdGen
172− let (_, nxtGen) = next g
172+ let (genToStore, genToReturn) = split oldGen
173− modifyPureState $ \st -> st { stStdGen = nxtGen }
173+ modifyPureState $ \st -> st { stStdGen = genToStore }
174− return g
174+ return genToReturn
175
175
176 newUniqueHash = do
176 newUniqueHash = do
177 uniqs <- getsPureState stUniqStore
177 uniqs <- getsPureState stUniqStore