{-# OPTIONS_GHC -fno-warn-orphans #-} module Data.GenValidity.Sequence ( genSeqOf, ) 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 = Gen v -> Gen (Seq v) forall v. Gen v -> Gen (Seq v) genSeqOf Gen v forall a. GenValid a => Gen a genValid shrinkValid :: Seq v -> [Seq v] shrinkValid = ([v] -> Seq v) -> [[v]] -> [Seq v] forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b fmap [v] -> Seq v forall a. [a] -> Seq a S.fromList ([[v]] -> [Seq v]) -> (Seq v -> [[v]]) -> Seq v -> [Seq v] forall b c a. (b -> c) -> (a -> b) -> a -> c . [v] -> [[v]] forall a. GenValid a => a -> [a] shrinkValid ([v] -> [[v]]) -> (Seq v -> [v]) -> Seq v -> [[v]] forall b c a. (b -> c) -> (a -> b) -> a -> c . Seq v -> [v] forall (t :: * -> *) a. Foldable t => t a -> [a] toList genSeqOf :: Gen v -> Gen (Seq v) genSeqOf :: Gen v -> Gen (Seq v) genSeqOf Gen v g = [v] -> Seq v forall a. [a] -> Seq a S.fromList ([v] -> Seq v) -> Gen [v] -> Gen (Seq v) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Gen v -> Gen [v] forall a. Gen a -> Gen [a] genListOf Gen v g