{-# LANGUAGE MultiParamTypeClasses, KindSignatures #-} module NoSlow.Backend.Interface where import qualified Prelude import Prelude ( Num, Int, Bool, undefined ) class Vector (v :: * -> *) a length :: Vector v a => v a -> Int replicate :: Vector v a => Int -> a -> v a map :: (Vector v a, Vector v b) => (a -> b) -> v a -> v b zip :: (Vector v a, Vector v b) => v a -> v b -> v (Pair a b) zipWith :: (Vector v a, Vector v b, Vector v c) => (a -> b -> c) -> v a -> v b -> v c sum :: (Num a, Vector v a) => v a -> a enumFromTo_Int :: Int -> Int -> v Int filter :: Vector v a => (a -> Bool) -> v a -> v a type Pair a b = (a,b) pair :: a -> b -> Pair a b fst :: Pair a b -> a snd :: Pair a b -> b length = undefined replicate = undefined map = undefined zip = undefined zipWith = undefined sum = undefined enumFromTo_Int = undefined filter = undefined pair = undefined fst = undefined snd = undefined