{-# LANGUAGE KindSignatures #-} module NoSlow.Backend.Interface where import qualified Prelude import Prelude ( Num, Ord, Int, Bool, undefined ) class Vector (v :: * -> *) a null :: Vector v a => v a -> Bool length :: Vector v a => v a -> Int replicate :: Vector v a => Int -> a -> v a cons :: Vector v a => a -> v a -> v a head :: Vector v a => v a -> a tail :: Vector v a => v a -> v a map :: (Vector v a, Vector v b) => (a -> b) -> v a -> v b imap :: (Vector v a, Vector v b) => (Int -> a -> b) -> v a -> v b zip :: (Vector v a, Vector v b) => v a -> v b -> v (Pair a b) zip3 :: (Vector v a, Vector v b, Vector v c) => v a -> v b -> v c -> v (Triple a b c) zipWith :: (Vector v a, Vector v b, Vector v c) => (a -> b -> c) -> v a -> v b -> v c unzip :: (Vector v a, Vector v b) => v (a,b) -> Pair (v a) (v b) sum :: (Num a, Vector v a) => v a -> a and :: v Bool -> Bool prescanl' :: (Vector v a, Vector v b) => (a -> b -> a) -> a -> v b -> v a prescanr' :: (Vector v a, Vector v b) => (a -> b -> b) -> b -> v a -> v b enumFromTo_Int :: Int -> Int -> v Int filter :: Vector v a => (a -> Bool) -> v a -> v a index :: Vector v a => v a -> Int -> a append :: Vector v a => v a -> v a -> v a take :: Vector v a => Int -> v a -> v a drop :: Vector v a => Int -> v a -> v a slice :: Vector v a => v a -> Int -> Int -> v a backpermute :: Vector v a => v a -> v Int -> v a update :: Vector v a => v a -> v (Pair Int a) -> v a update_ :: Vector v a => v a -> v Int -> v a -> v a minIndex :: (Ord a, Vector v a) => v a -> Int maxIndex :: (Ord a, Vector v a) => v a -> Int unstablePartition :: Vector v a => (a -> Bool) -> v a -> (v a, v a) type Pair a b = (a,b) type Triple a b c = (a,b,c) pair :: a -> b -> Pair a b from2 :: Pair a b -> (a,b) fst :: Pair a b -> a snd :: Pair a b -> b triple :: a -> b -> c -> Triple a b c from3 :: Triple a b c -> (a,b,c) null = undefined length = undefined replicate = undefined cons = undefined head = undefined tail = undefined map = undefined imap = undefined zip = undefined zip3 = undefined zipWith = undefined unzip = undefined sum = undefined and = undefined prescanl' = undefined prescanr' = undefined enumFromTo_Int = undefined filter = undefined index = undefined append = undefined take = undefined drop = undefined slice = undefined backpermute = undefined update = undefined update_ = undefined minIndex = undefined maxIndex = undefined unstablePartition = undefined pair = undefined from2 = undefined fst = undefined snd = undefined triple = undefined from3 = undefined