{-# LANGUAGE TypeFamilies #-} module NoSlow.Backend.Vector ( module Data.Vector, enumFromTo_Int, pair, fst, snd ) where import NoSlow.Util.Computation import qualified Data.Vector as V import Data.Vector instance DeepSeq a => DeepSeq (V.Vector a) where deepSeq xs b = V.foldr deepSeq b xs instance TestData a => TestData (V.Vector a) where testData n = V.fromList (testData n) instance DeepSeq a => 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 pair :: a -> b -> (a,b) {-# INLINE pair #-} pair = (,)