{-# OPTIONS_GHC -Wno-orphans #-}
module Data.ByteString.Arbitrary () where

import Data.ByteString (ByteString)
import Test.QuickCheck (Arbitrary(..))
import qualified Data.ByteString.Char8

instance Arbitrary ByteString where
  arbitrary :: Gen ByteString
arbitrary = String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> Gen String -> Gen ByteString
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Gen String
forall a. Arbitrary a => Gen a
arbitrary
  shrink :: ByteString -> [ByteString]
shrink ByteString
xs = String -> ByteString
Data.ByteString.Char8.pack (String -> ByteString) -> [String] -> [ByteString]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> String -> [String]
forall a. Arbitrary a => a -> [a]
shrink (ByteString -> String
Data.ByteString.Char8.unpack ByteString
xs)