{-# OPTIONS_GHC -fno-warn-orphans #-} {-# LANGUAGE CPP #-} module Data.GenValidity.Sequence ( genSeqOf, ) where import Test.QuickCheck #if !MIN_VERSION_base(4,8,0) import Data.Functor ((<$>)) #endif import Data.Foldable (toList) import Data.GenValidity import Data.Validity.Sequence () import Data.Sequence (Seq) import qualified Data.Sequence as S instance GenUnchecked v => GenUnchecked (Seq v) where genUnchecked = genSeqOf genUnchecked shrinkUnchecked = fmap S.fromList . shrinkUnchecked . toList instance GenValid v => GenValid (Seq v) where genValid = genSeqOf genValid shrinkValid = fmap S.fromList . shrinkValid . toList instance (GenUnchecked v, GenInvalid v) => GenInvalid (Seq v) where shrinkInvalid = fmap S.fromList . shrinkInvalid . toList genSeqOf :: Gen v -> Gen (Seq v) genSeqOf g = S.fromList <$> genListOf g