genvalidity-vector-0.3.0.0: src/Data/GenValidity/Vector.hs
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# LANGUAGE CPP #-}
module Data.GenValidity.Vector where
#if !MIN_VERSION_base(4,8,0)
import Data.Functor ((<$>))
#endif
import Data.GenValidity
import Data.Validity.Vector ()
import qualified Data.Vector as V
import qualified Data.Vector.Storable as SV
instance GenUnchecked v => GenUnchecked (V.Vector v) where
genUnchecked = V.fromList <$> genUnchecked
shrinkUnchecked = fmap V.fromList . shrinkUnchecked . V.toList
instance GenValid v => GenValid (V.Vector v) where
genValid = V.fromList <$> genValid
shrinkValid = fmap V.fromList . shrinkValid . V.toList
instance (GenUnchecked v, GenInvalid v) => GenInvalid (V.Vector v) where
genInvalid = V.fromList <$> genInvalid
shrinkInvalid = fmap V.fromList . shrinkInvalid . V.toList
instance (SV.Storable e, GenUnchecked e) => GenUnchecked (SV.Vector e) where
genUnchecked = SV.fromList <$> genUnchecked
shrinkUnchecked = fmap SV.fromList . shrinkUnchecked . SV.toList
instance (SV.Storable e, GenValid e) => GenValid (SV.Vector e) where
genValid = SV.fromList <$> genValid
shrinkValid = fmap SV.fromList . shrinkValid . SV.toList