{-# OPTIONS_GHC -fno-warn-orphans #-}
module Data.Validity.Vector where
import Data.Validity
import qualified Data.Vector as V
import qualified Data.Vector.Storable as SV
import qualified Data.Vector.Storable.Mutable as MSV
import qualified Data.Vector.Unboxed as UV
import qualified Data.Vector.Unboxed.Mutable as MUV
import GHC.Exts as GHC (IsList(..))
instance Validity a => Validity (V.Vector a) where
validate hs = annotate (V.toList hs) "Vector elements"
instance (MUV.Unbox e, Validity e) => Validity (UV.Vector e) where
validate = delve "Vector elements" . UV.toList
instance (MSV.Storable e, Validity e) => Validity (SV.Vector e) where
validate = delve "Vector elements" . GHC.toList