
#8899: StdGen does not generate 0 -------------------------------------+------------------------------------ Reporter: novadenizen | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: libraries/random | Version: 7.9 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: Other | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by thomie): The `StdGen` indeed never generates `0`. This follows from the following line in the function `stdNext` (`z'` is the next generated `Int`): {{{#!haskell z' = if z < 1 then z + 2147483562 else z }}} I checked the paper, and this is as intended. The range should be [1, 2147483562]. novadenizen's script also finds these: {{{#!haskell Just 885777925 -- v == 1 Just 2217242596 -- v == 2147483562 }}} Here's a [https://github.com/haskell/random/pull/7 pull request]. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8899#comment:6 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler