{-# LANGUAGE NoImplicitPrelude, PolymorphicComponents #-}
module ModularPrelude.Module.Vector
(
VectorModule (..)
, VectorImplements (..)
) where
import ModularPrelude hiding (empty)
import qualified Data.Vector as Vector
data VectorModule = Vector
{ VectorModule -> forall a b. (a -> b) -> Vector a -> Vector b
map :: forall a b. (a -> b) -> Vector a -> Vector b
, VectorModule -> forall a b. (a -> Vector b) -> Vector a -> Vector b
concatMap :: forall a b. (a -> Vector b) -> Vector a -> Vector b
, VectorModule -> forall a. (a -> Bool) -> Vector a -> Vector a
filter :: forall a. (a -> Bool) -> Vector a -> Vector a
, VectorModule -> forall a. Vector a -> Int
length :: forall a. Vector a -> Int
, VectorModule -> forall a. a -> Vector a
singleton :: forall a. a -> Vector a
, VectorModule -> forall a. Vector a -> Bool
null :: forall a. Vector a -> Bool
, VectorModule -> forall a. [a] -> Vector a
pack :: forall a. [a] -> Vector a
, VectorModule -> forall a. Vector a -> [a]
unpack :: forall a. Vector a -> [a]
, VectorModule -> forall a. [a] -> Vector a
fromList :: forall a. [a] -> Vector a
, VectorModule -> forall a. Vector a -> [a]
toList :: forall a. Vector a -> [a]
, VectorModule
-> forall a b (m :: * -> *).
Monad m =>
(a -> m b) -> Vector a -> m (Vector b)
mapM :: forall a b m. Monad m => (a -> m b) -> Vector a -> m (Vector b)
, VectorModule
-> forall a b (m :: * -> *).
Monad m =>
(a -> m b) -> Vector a -> m ()
mapM_ :: forall a b m. Monad m => (a -> m b) -> Vector a -> m ()
, VectorModule -> forall a. Vector a
empty :: forall a. Vector a
, VectorModule -> forall a. Eq a => a -> Vector a -> Bool
member :: forall a. Eq a => a -> Vector a -> Bool
, VectorModule
-> forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
break :: forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
, VectorModule
-> forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
span :: forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
, VectorModule -> forall a. (a -> Bool) -> Vector a -> Vector a
dropWhile :: forall a. (a -> Bool) -> Vector a -> Vector a
, VectorModule -> forall a. (a -> Bool) -> Vector a -> Vector a
takeWhile :: forall a. (a -> Bool) -> Vector a -> Vector a
, VectorModule -> forall a. (a -> Bool) -> Vector a -> Bool
any :: forall a. (a -> Bool) -> Vector a -> Bool
, VectorModule -> forall a. (a -> Bool) -> Vector a -> Bool
all :: forall a. (a -> Bool) -> Vector a -> Bool
, VectorModule -> forall a. Int -> Vector a -> (Vector a, Vector a)
splitAt :: forall a. Int -> Vector a -> (Vector a, Vector a)
, VectorModule -> forall a b. (a -> b -> a) -> a -> Vector b -> a
fold :: forall a b. (a -> b -> a) -> a -> Vector b -> a
}
class VectorImplements interface where
_Data_Vector_ :: interface
instance VectorImplements VectorModule where
_Data_Vector_ :: VectorModule
_Data_Vector_ = Vector
{ map :: forall a b. (a -> b) -> Vector a -> Vector b
map = (a -> b) -> Vector a -> Vector b
forall a b. (a -> b) -> Vector a -> Vector b
Vector.map
, concatMap :: forall a b. (a -> Vector b) -> Vector a -> Vector b
concatMap = (a -> Vector b) -> Vector a -> Vector b
forall a b. (a -> Vector b) -> Vector a -> Vector b
Vector.concatMap
, filter :: forall a. (a -> Bool) -> Vector a -> Vector a
filter = (a -> Bool) -> Vector a -> Vector a
forall a. (a -> Bool) -> Vector a -> Vector a
Vector.filter
, length :: forall a. Vector a -> Int
length = Vector a -> Int
forall a. Vector a -> Int
Vector.length
, singleton :: forall a. a -> Vector a
singleton = a -> Vector a
forall a. a -> Vector a
Vector.singleton
, null :: forall a. Vector a -> Bool
null = Vector a -> Bool
forall a. Vector a -> Bool
Vector.null
, pack :: forall a. [a] -> Vector a
pack = [a] -> Vector a
forall a. [a] -> Vector a
Vector.fromList
, unpack :: forall a. Vector a -> [a]
unpack = Vector a -> [a]
forall a. Vector a -> [a]
Vector.toList
, fromList :: forall a. [a] -> Vector a
fromList = [a] -> Vector a
forall a. [a] -> Vector a
Vector.fromList
, toList :: forall a. Vector a -> [a]
toList = Vector a -> [a]
forall a. Vector a -> [a]
Vector.toList
, mapM :: forall a b (m :: * -> *).
Monad m =>
(a -> m b) -> Vector a -> m (Vector b)
mapM = (a -> m b) -> Vector a -> m (Vector b)
forall a b (m :: * -> *).
Monad m =>
(a -> m b) -> Vector a -> m (Vector b)
forall (m :: * -> *) a b.
Monad m =>
(a -> m b) -> Vector a -> m (Vector b)
Vector.mapM
, mapM_ :: forall a b (m :: * -> *). Monad m => (a -> m b) -> Vector a -> m ()
mapM_ = (a -> m b) -> Vector a -> m ()
forall a b (m :: * -> *). Monad m => (a -> m b) -> Vector a -> m ()
forall (m :: * -> *) a b. Monad m => (a -> m b) -> Vector a -> m ()
Vector.mapM_
, empty :: forall a. Vector a
empty = Vector a
forall a. Vector a
Vector.empty
, member :: forall a. Eq a => a -> Vector a -> Bool
member = (a -> Bool) -> Vector a -> Bool
forall a. (a -> Bool) -> Vector a -> Bool
Vector.any ((a -> Bool) -> Vector a -> Bool)
-> (a -> a -> Bool) -> a -> Vector a -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. a -> a -> Bool
forall a. Eq a => a -> a -> Bool
(==)
, break :: forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
break = (a -> Bool) -> Vector a -> (Vector a, Vector a)
forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
Vector.break
, span :: forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
span = (a -> Bool) -> Vector a -> (Vector a, Vector a)
forall a. (a -> Bool) -> Vector a -> (Vector a, Vector a)
Vector.span
, dropWhile :: forall a. (a -> Bool) -> Vector a -> Vector a
dropWhile = (a -> Bool) -> Vector a -> Vector a
forall a. (a -> Bool) -> Vector a -> Vector a
Vector.dropWhile
, takeWhile :: forall a. (a -> Bool) -> Vector a -> Vector a
takeWhile = (a -> Bool) -> Vector a -> Vector a
forall a. (a -> Bool) -> Vector a -> Vector a
Vector.takeWhile
, any :: forall a. (a -> Bool) -> Vector a -> Bool
any = (a -> Bool) -> Vector a -> Bool
forall a. (a -> Bool) -> Vector a -> Bool
Vector.any
, all :: forall a. (a -> Bool) -> Vector a -> Bool
all = (a -> Bool) -> Vector a -> Bool
forall a. (a -> Bool) -> Vector a -> Bool
Vector.all
, splitAt :: forall a. Int -> Vector a -> (Vector a, Vector a)
splitAt = Int -> Vector a -> (Vector a, Vector a)
forall a. Int -> Vector a -> (Vector a, Vector a)
Vector.splitAt
, fold :: forall a b. (a -> b -> a) -> a -> Vector b -> a
fold = (a -> b -> a) -> a -> Vector b -> a
forall a b. (a -> b -> a) -> a -> Vector b -> a
Vector.foldl'
}
instance Default VectorModule where
def :: VectorModule
def = VectorModule
forall interface. VectorImplements interface => interface
_Data_Vector_