{-# LANGUAGE TypeFamilies #-} module NoSlow.Backend.Vector.Primitive ( module Data.Vector.Primitive, enumFromTo_Int, zip, pair, fst, snd ) where import NoSlow.Util.Computation import NoSlow.Util.Base ( Unsupported(..) ) import qualified Data.Vector.Primitive as V import Data.Vector.Primitive import Prelude hiding ( fst, snd, zip ) instance DeepSeq (V.Vector a) instance (TestData a, V.Prim a) => TestData (V.Vector a) where testData n = V.fromList (testData n) instance Computation (V.Vector a) where type Arg (V.Vector a) = Nil type Res (V.Vector a) = V.Vector a apply x _ = x enumFromTo_Int :: Int -> Int -> V.Vector Int {-# INLINE enumFromTo_Int #-} enumFromTo_Int = V.enumFromTo zip = Unsupported pair = Unsupported fst = Unsupported snd = Unsupported