{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Test.QuickCheck.Instances.Natural () where
import Prelude ()
import Numeric.Natural (Natural)
import Test.QuickCheck
(Arbitrary (..), CoArbitrary (..), arbitrarySizedNatural,
coarbitraryIntegral, shrinkIntegral)
import Test.QuickCheck.Function (Function (..), functionIntegral)
instance Arbitrary Natural where
arbitrary :: Gen Natural
arbitrary = Gen Natural
forall a. Integral a => Gen a
arbitrarySizedNatural
shrink :: Natural -> [Natural]
shrink = Natural -> [Natural]
forall a. Integral a => a -> [a]
shrinkIntegral
instance CoArbitrary Natural where
coarbitrary :: Natural -> Gen b -> Gen b
coarbitrary = Natural -> Gen b -> Gen b
forall a b. Integral a => a -> Gen b -> Gen b
coarbitraryIntegral
instance Function Natural where
function :: (Natural -> b) -> Natural :-> b
function = (Natural -> b) -> Natural :-> b
forall a b. Integral a => (a -> b) -> a :-> b
functionIntegral