[Haskell-cafe] Avoid sharing
Michael Roth
list at mroth.net
Mon Nov 7 19:56:54 UTC 2016
Hello! A short question, given:
data Seed = ...
data Value = ...
someGenerator :: Seed -> [Value]
createTwo :: Seed -> ([Value], [Value])
createTwo s = (as, bs) where
as = someGenerator s
bs = drop 1000000000 (someGenerator s)
Is it guaranteed that 'someGenerator s' is created twice and not shared
between 'as' and 'bs'? Is this by language design? Are there any GHC
options that change the behaviour?
Thank you,
Michael
More information about the Haskell-Cafe
mailing list