{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.GenValidity.Sequence ( genSeqOf, shrinkSeqOf, ) where import Data.Foldable (toList) import Data.GenValidity import Data.Sequence (Seq) import qualified Data.Sequence as S import Data.Validity.Sequence () import Test.QuickCheck instance GenValid v => GenValid (Seq v) where genValid :: Gen (Seq v) genValid = forall v. Gen v -> Gen (Seq v) genSeqOf forall a. GenValid a => Gen a genValid shrinkValid :: Seq v -> [Seq v] shrinkValid = forall v. (v -> [v]) -> Seq v -> [Seq v] shrinkSeqOf forall a. GenValid a => a -> [a] shrinkValid genSeqOf :: Gen v -> Gen (Seq v) genSeqOf :: forall v. Gen v -> Gen (Seq v) genSeqOf Gen v g = forall a. [a] -> Seq a S.fromList forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> forall a. Gen a -> Gen [a] genListOf Gen v g shrinkSeqOf :: (v -> [v]) -> Seq v -> [Seq v] shrinkSeqOf :: forall v. (v -> [v]) -> Seq v -> [Seq v] shrinkSeqOf v -> [v] shrinker = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap forall a. [a] -> Seq a S.fromList forall b c a. (b -> c) -> (a -> b) -> a -> c . forall a. (a -> [a]) -> [a] -> [[a]] shrinkList v -> [v] shrinker forall b c a. (b -> c) -> (a -> b) -> a -> c . forall (t :: * -> *) a. Foldable t => t a -> [a] toList