[Haskell-beginners] defining own arbitrary :: Gen Int
Thomas Davie
tom.davie at gmail.com
Sat Mar 7 08:26:35 EST 2009
On 7 Mar 2009, at 13:54, ben wrote:
> Hello,
>
> I would like to define my own arbitrary which should only give
> naturals,
> i. e. which should behave like
>
> instance Arbitrary Integer where
> arbitrary = elements ([0..]).
>
> This definition gives a "multiple definition" error. Is there a way to
> hide the definition of arbitrary::Gen Int of QuickCheck, such that I
> can
> use my own definition ?
The easiest way is to newtype it, and use fromIntegral to convert:
newtype Natural = N Integer
instance Arbitrary Integer where
arbitrary = N <$> elements [0..]
instance Integral Natural where
fromIntegral (N x) = fromIntegral x
Bob
More information about the Beginners
mailing list