{-# LANGUAGE TypeFamilies, CPP #-} module NoSlow.Backend.Vector.Unboxed ( module Data.Vector.Unboxed, enumFromTo_Int, index, append, pair, from2, fst, snd, triple, from3 ) where import NoSlow.Util.Computation import qualified Data.Vector.Unboxed as V import Data.Vector.Unboxed import Prelude instance DeepSeq (V.Vector a) instance (TestData a, V.Unbox a) => TestData (V.Vector a) where testData = testList instance V.Unbox a => ListLike V.Vector a where fromList = V.fromList enumFromTo_Int :: Int -> Int -> V.Vector Int {-# INLINE enumFromTo_Int #-} enumFromTo_Int = V.enumFromTo index :: V.Unbox a => V.Vector a -> Int -> a {-# INLINE index #-} index = (V.!) append :: V.Unbox a => V.Vector a -> V.Vector a -> V.Vector a {-# INLINE append #-} append = (V.++) pair :: a -> b -> (a,b) {-# INLINE pair #-} pair = (,) from2 :: (a,b) -> (a,b) {-# INLINE from2 #-} from2 = id triple :: a -> b -> c -> (a,b,c) {-# INLINE triple #-} triple = (,,) from3 :: (a,b,c) -> (a,b,c) {-# INLINE from3 #-} from3 = id