random g = randomR (minBound, maxBound) g
instance Arbitrary Char where
- arbitrary = sized $ \n -> choose (toEnum 0, min (toEnum (n * 0x50)) maxBound)
+ arbitrary = sized $ \n -> choose (toEnum 0, min (toEnum (n * 0x50)) '\xFF')
coarbitrary n = variant (toEnum (2 * x + 1))
where x = (abs . fromEnum $ n)::Int