{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module Test.QuickCheck.Instances.Array.Byte () where
#if !MIN_VERSION_primitive(0,8,0) && MIN_VERSION_base(4,9,0)
import Prelude ()
import Test.QuickCheck.Instances.CustomPrelude
import Test.QuickCheck.Instances.Primitive ()
import Test.QuickCheck
import Data.Array.Byte (ByteArray (..))
import qualified Data.Primitive as P
instance Arbitrary ByteArray where
arbitrary :: Gen ByteArray
arbitrary = ByteArray -> ByteArray
fromP (ByteArray -> ByteArray) -> Gen ByteArray -> Gen ByteArray
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen ByteArray
forall a. Arbitrary a => Gen a
arbitrary
shrink :: ByteArray -> [ByteArray]
shrink ByteArray
ba = ByteArray -> ByteArray
fromP (ByteArray -> ByteArray) -> [ByteArray] -> [ByteArray]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ByteArray -> [ByteArray]
forall a. Arbitrary a => a -> [a]
shrink (ByteArray -> ByteArray
toP ByteArray
ba)
instance CoArbitrary ByteArray where
coarbitrary :: forall b. ByteArray -> Gen b -> Gen b
coarbitrary ByteArray
ba = ByteArray -> Gen b -> Gen b
forall a b. CoArbitrary a => a -> Gen b -> Gen b
forall b. ByteArray -> Gen b -> Gen b
coarbitrary (ByteArray -> ByteArray
toP ByteArray
ba)
instance Function ByteArray where
function :: forall b. (ByteArray -> b) -> ByteArray :-> b
function = (ByteArray -> ByteArray)
-> (ByteArray -> ByteArray) -> (ByteArray -> b) -> ByteArray :-> b
forall b a c.
Function b =>
(a -> b) -> (b -> a) -> (a -> c) -> a :-> c
functionMap ByteArray -> ByteArray
toP ByteArray -> ByteArray
fromP
toP :: ByteArray -> P.ByteArray
toP :: ByteArray -> ByteArray
toP (ByteArray ByteArray#
ba) = ByteArray# -> ByteArray
P.ByteArray ByteArray#
ba
fromP :: P.ByteArray -> ByteArray
fromP :: ByteArray -> ByteArray
fromP (P.ByteArray ByteArray#
ba) = ByteArray# -> ByteArray
ByteArray ByteArray#
ba
#endif