module Test.QuickCheck.Instances.CaseInsensitive () where
import Prelude ()
import Prelude.Compat
import Test.QuickCheck
import qualified Data.CaseInsensitive as CI
instance (CI.FoldCase a, Arbitrary a) => Arbitrary (CI.CI a) where
    arbitrary = CI.mk <$> arbitrary
    shrink = fmap CI.mk . shrink . CI.original
instance CoArbitrary a => CoArbitrary (CI.CI a) where
    coarbitrary = coarbitrary . CI.original
instance (CI.FoldCase a, Function a) => Function (CI.CI a) where
    function = functionMap CI.mk CI.original