module Data.Vector.Hybrid
( Vector, MVector
, length, null
, (!), (!?), head, last
, unsafeIndex, unsafeHead, unsafeLast
, indexM, headM, lastM
, unsafeIndexM, unsafeHeadM, unsafeLastM
, slice, init, tail, take, drop, splitAt
, unsafeSlice, unsafeInit, unsafeTail, unsafeTake, unsafeDrop
, empty, singleton, replicate, generate, iterateN
, replicateM, generateM, create
, unfoldr, unfoldrN
, constructN, constructrN
, cons, snoc, (++), concat
, force
, (//)
, unsafeUpd
, accum, unsafeAccum
, reverse
, modify
, map, imap, concatMap
, mapM, mapM_, forM, forM_
, zipWith, zipWith3, zipWith4, zipWith5, zipWith6
, izipWith, izipWith3, izipWith4, izipWith5, izipWith6
, zipWithM, zipWithM_
, filter, ifilter, filterM
, takeWhile, dropWhile
, partition, unstablePartition, span, break
, elem, notElem, find, findIndex
, elemIndex
, foldl, foldl1, foldl', foldl1', foldr, foldr1, foldr', foldr1'
, ifoldl, ifoldl', ifoldr, ifoldr'
, all, any
, maximum, maximumBy, minimum, minimumBy
, minIndex, minIndexBy, maxIndex, maxIndexBy
, foldM, foldM', fold1M, fold1M'
, foldM_, foldM'_, fold1M_, fold1M'_
, prescanl, prescanl'
, postscanl, postscanl'
, scanl, scanl', scanl1, scanl1'
, prescanr, prescanr'
, postscanr, postscanr'
, scanr, scanr', scanr1, scanr1'
, projectFst
, projectSnd
, unsafeZip
, toList, fromList, fromListN
, G.convert
, freeze, thaw, copy, unsafeFreeze, unsafeThaw, unsafeCopy
) where
import Control.Monad.Primitive
import Control.Monad.ST
import Data.Vector.Hybrid.Internal
import qualified Data.Vector.Generic as G
import Prelude hiding ( length, null,
replicate, (++), concat,
head, last,
init, tail, take, drop, splitAt, reverse,
map, concatMap,
zipWith, zipWith3, zip, zip3, unzip, unzip3,
filter, takeWhile, dropWhile, span, break,
elem, notElem,
foldl, foldl1, foldr, foldr1,
all, any, sum, product, minimum, maximum,
scanl, scanl1, scanr, scanr1,
enumFromTo, enumFromThenTo,
mapM, mapM_ )
length :: G.Vector u a => Vector u v (a, b) -> Int
length (V ks _) = G.length ks
null :: G.Vector u a => Vector u v (a, b) -> Bool
null (V ks _) = G.null ks
(!) :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Int -> (a, b)
(!) = (G.!)
(!?) :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Int -> Maybe (a, b)
(!?) = (G.!?)
head :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> (a, b)
head = G.head
last :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> (a, b)
last = G.last
unsafeIndex :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Int -> (a, b)
unsafeIndex = G.unsafeIndex
unsafeHead :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> (a, b)
unsafeHead = G.unsafeHead
unsafeLast :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> (a, b)
unsafeLast = G.unsafeLast
indexM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> Int -> m (a, b)
indexM = G.indexM
headM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> m (a, b)
headM = G.headM
lastM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> m (a, b)
lastM = G.lastM
unsafeIndexM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> Int -> m (a, b)
unsafeIndexM = G.unsafeIndexM
unsafeHeadM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> m (a, b)
unsafeHeadM = G.unsafeHeadM
unsafeLastM :: (G.Vector u a, G.Vector v b, Monad m) => Vector u v (a, b) -> m (a, b)
unsafeLastM = G.unsafeLastM
slice :: (G.Vector u a, G.Vector v b)
=> Int
-> Int
-> Vector u v (a, b)
-> Vector u v (a, b)
slice = G.slice
init :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
init = G.init
tail :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
tail = G.tail
take :: (G.Vector u a, G.Vector v b) => Int -> Vector u v (a, b) -> Vector u v (a, b)
take = G.take
drop :: (G.Vector u a, G.Vector v b) => Int -> Vector u v (a, b) -> Vector u v (a, b)
drop = G.drop
splitAt :: (G.Vector u a, G.Vector v b) => Int -> Vector u v (a, b) -> (Vector u v (a, b), Vector u v (a, b))
splitAt = G.splitAt
unsafeSlice :: (G.Vector u a, G.Vector v b) => Int
-> Int
-> Vector u v (a, b)
-> Vector u v (a, b)
unsafeSlice = G.unsafeSlice
unsafeInit :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
unsafeInit = G.unsafeInit
unsafeTail :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
unsafeTail = G.unsafeTail
unsafeTake :: (G.Vector u a, G.Vector v b) => Int -> Vector u v (a, b) -> Vector u v (a, b)
unsafeTake = G.unsafeTake
unsafeDrop :: (G.Vector u a, G.Vector v b) => Int -> Vector u v (a, b) -> Vector u v (a, b)
unsafeDrop = G.unsafeDrop
empty :: (G.Vector u a, G.Vector v b) => Vector u v (a, b)
empty = G.empty
singleton :: (G.Vector u a, G.Vector v b) => (a, b) -> Vector u v (a, b)
singleton = G.singleton
replicate :: (G.Vector u a, G.Vector v b) => Int -> (a, b) -> Vector u v (a, b)
replicate = G.replicate
generate :: (G.Vector u a, G.Vector v b) => Int -> (Int -> (a, b)) -> Vector u v (a, b)
generate = G.generate
iterateN :: (G.Vector u a, G.Vector v b) => Int -> ((a, b) -> (a, b)) -> (a, b) -> Vector u v (a, b)
iterateN = G.iterateN
unfoldr :: (G.Vector u a, G.Vector v b) => (c -> Maybe ((a, b), c)) -> c -> Vector u v (a, b)
unfoldr = G.unfoldr
unfoldrN :: (G.Vector u a, G.Vector v b) => Int -> (c -> Maybe ((a, b), c)) -> c -> Vector u v (a, b)
unfoldrN = G.unfoldrN
constructN :: (G.Vector u a, G.Vector v b) => Int -> (Vector u v (a, b) -> (a, b)) -> Vector u v (a, b)
constructN = G.constructN
constructrN :: (G.Vector u a, G.Vector v b) => Int -> (Vector u v (a, b) -> (a, b)) -> Vector u v (a, b)
constructrN = G.constructrN
cons :: (G.Vector u a, G.Vector v b) => (a, b) -> Vector u v (a, b) -> Vector u v (a, b)
cons = G.cons
snoc :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> (a, b) -> Vector u v (a, b)
snoc = G.snoc
infixr 5 ++
(++) :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b) -> Vector u v (a, b)
(++) = (G.++)
concat :: (G.Vector u a, G.Vector v b) => [Vector u v (a, b)] -> Vector u v (a, b)
concat = G.concat
replicateM :: (Monad m, G.Vector u a, G.Vector v b) => Int -> m (a, b) -> m (Vector u v (a, b))
replicateM = G.replicateM
generateM :: (Monad m, G.Vector u a, G.Vector v b) => Int -> (Int -> m (a, b)) -> m (Vector u v (a, b))
generateM = G.generateM
create :: (G.Vector u a, G.Vector v b) => (forall s. ST s (G.Mutable (Vector u v) s (a, b))) -> Vector u v (a, b)
create p = G.create p
force :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
force = G.force
(//) :: (G.Vector u a, G.Vector v b) => Vector u v (a, b)
-> [(Int, (a, b))]
-> Vector u v (a, b)
(//) = (G.//)
unsafeUpd :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> [(Int, (a, b))] -> Vector u v (a, b)
unsafeUpd = G.unsafeUpd
accum :: (G.Vector u a, G.Vector v b)
=> ((a, b) -> c -> (a, b))
-> Vector u v (a, b)
-> [(Int,c)]
-> Vector u v (a, b)
accum = G.accum
unsafeAccum :: (G.Vector u a, G.Vector v b) => ((a, b) -> c -> (a, b)) -> Vector u v (a, b) -> [(Int,c)] -> Vector u v (a, b)
unsafeAccum = G.unsafeAccum
reverse :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> Vector u v (a, b)
reverse = G.reverse
modify :: (G.Vector u a, G.Vector v b)
=> (forall s. G.Mutable (Vector u v) s (a, b) -> ST s ())
-> Vector u v (a, b) -> Vector u v (a, b)
modify p = G.modify p
map :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d)
=> ((a, b) -> (c, d)) -> Vector u v (a, b) -> Vector u v (c, d)
map = G.map
imap :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d)
=> (Int -> (a, b) -> (c, d))
-> Vector u v (a, b) -> Vector u v (c, d)
imap = G.imap
concatMap :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d)
=> ((a, b) -> Vector u v (c, d)) -> Vector u v (a, b) -> Vector u v (c, d)
concatMap = G.concatMap
mapM :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> m (c, d)) -> Vector u v (a, b) -> m (Vector u v (c, d))
mapM = G.mapM
mapM_ :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> m (c, d)) -> Vector u v (a, b) -> m ()
mapM_ = G.mapM_
forM :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => Vector u v (a, b) -> ((a, b) -> m (c, d)) -> m (Vector u v (c, d))
forM = G.forM
forM_ :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => Vector u v (a, b) -> ((a, b) -> m (c, d)) -> m ()
forM_ = G.forM_
zipWith :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
) => ((a,a') -> (b,b') -> (c,c'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c')
zipWith = G.zipWith
zipWith3 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
) => ((a,a') -> (b,b') -> (c,c') -> (d, d'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d')
zipWith3 = G.zipWith3
zipWith4 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
) => ((a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e')
zipWith4 = G.zipWith4
zipWith5 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
, G.Vector u f, G.Vector v f'
) => ((a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e') -> (f,f'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e') -> Vector u v (f,f')
zipWith5 = G.zipWith5
zipWith6 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
, G.Vector u f, G.Vector v f'
, G.Vector u g, G.Vector v g'
) => ((a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e') -> (f,f') -> (g,g'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e') -> Vector u v (f,f') -> Vector u v (g,g')
zipWith6 = G.zipWith6
izipWith :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
) => (Int -> (a,a') -> (b,b') -> (c,c'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c')
izipWith = G.izipWith
izipWith3 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
) => (Int -> (a,a') -> (b,b') -> (c,c') -> (d, d'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d')
izipWith3 = G.izipWith3
izipWith4 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
) => (Int -> (a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e')
izipWith4 = G.izipWith4
izipWith5 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
, G.Vector u f, G.Vector v f'
) => (Int -> (a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e') -> (f,f'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e') -> Vector u v (f,f')
izipWith5 = G.izipWith5
izipWith6 :: ( G.Vector u a, G.Vector v a'
, G.Vector u b, G.Vector v b'
, G.Vector u c, G.Vector v c'
, G.Vector u d, G.Vector v d'
, G.Vector u e, G.Vector v e'
, G.Vector u f, G.Vector v f'
, G.Vector u g, G.Vector v g'
) => (Int -> (a,a') -> (b,b') -> (c,c') -> (d, d') -> (e,e') -> (f,f') -> (g,g'))
-> Vector u v (a,a') -> Vector u v (b,b') -> Vector u v (c,c') -> Vector u v (d,d') -> Vector u v (e,e') -> Vector u v (f,f') -> Vector u v (g,g')
izipWith6 = G.izipWith6
zipWithM :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d, G.Vector u e, G.Vector v f)
=> ((a, b) -> (c, d) -> m (e,f)) -> Vector u v (a, b) -> Vector u v (c, d) -> m (Vector u v (e,f))
zipWithM = G.zipWithM
zipWithM_ :: (Monad m, G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d)
=> ((a, b) -> (c, d) -> m e) -> Vector u v (a, b) -> Vector u v (c, d) -> m ()
zipWithM_ = G.zipWithM_
filter :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Vector u v (a, b)
filter = G.filter
ifilter :: (G.Vector u a, G.Vector v b) => (Int -> (a, b) -> Bool) -> Vector u v (a, b) -> Vector u v (a, b)
ifilter = G.ifilter
filterM :: (Monad m, G.Vector u a, G.Vector v b) => ((a, b) -> m Bool) -> Vector u v (a, b) -> m (Vector u v (a, b))
filterM = G.filterM
takeWhile :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Vector u v (a, b)
takeWhile = G.takeWhile
dropWhile :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Vector u v (a, b)
dropWhile = G.dropWhile
partition :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> (Vector u v (a, b), Vector u v (a, b))
partition = G.partition
unstablePartition :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> (Vector u v (a, b), Vector u v (a, b))
unstablePartition = G.unstablePartition
span :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> (Vector u v (a, b), Vector u v (a, b))
span = G.span
break :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> (Vector u v (a, b), Vector u v (a, b))
break = G.break
infix 4 `elem`
elem :: (G.Vector u a, G.Vector v b, Eq a, Eq b) => (a, b) -> Vector u v (a, b) -> Bool
elem = G.elem
infix 4 `notElem`
notElem :: (G.Vector u a, G.Vector v b, Eq a, Eq b) => (a, b) -> Vector u v (a, b) -> Bool
notElem = G.notElem
find :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Maybe (a, b)
find = G.find
findIndex :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Maybe Int
findIndex = G.findIndex
elemIndex :: (G.Vector u a, G.Vector v b, Eq a, Eq b) => (a, b) -> Vector u v (a, b) -> Maybe Int
elemIndex = G.elemIndex
foldl :: (G.Vector u a, G.Vector v b) => (r -> (a, b) -> r) -> r -> Vector u v (a, b) -> r
foldl = G.foldl
foldl1 :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> (a, b)
foldl1 = G.foldl1
foldl' :: (G.Vector u a, G.Vector v b) => (r -> (a, b) -> r) -> r -> Vector u v (a, b) -> r
foldl' = G.foldl'
foldl1' :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> (a, b)
foldl1' = G.foldl1'
foldr :: (G.Vector u a, G.Vector v b) => ((a, b) -> r -> r) -> r -> Vector u v (a, b) -> r
foldr = G.foldr
foldr1 :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> (a, b)
foldr1 = G.foldr1
foldr' :: (G.Vector u a, G.Vector v b) => ((a, b) -> r -> r) -> r -> Vector u v (a, b) -> r
foldr' = G.foldr'
foldr1' :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> (a, b)
foldr1' = G.foldr1'
ifoldl :: (G.Vector u a, G.Vector v b) => (r -> Int -> (a, b) -> r) -> r -> Vector u v (a, b) -> r
ifoldl = G.ifoldl
ifoldl' :: (G.Vector u a, G.Vector v b) => (r -> Int -> (a, b) -> r) -> r -> Vector u v (a, b) -> r
ifoldl' = G.ifoldl'
ifoldr :: (G.Vector u a, G.Vector v b) => (Int -> (a, b) -> r -> r) -> r -> Vector u v (a, b) -> r
ifoldr = G.ifoldr
ifoldr' :: (G.Vector u a, G.Vector v b) => (Int -> (a, b) -> r -> r) -> r -> Vector u v (a, b) -> r
ifoldr' = G.ifoldr'
all :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Bool
all = G.all
any :: (G.Vector u a, G.Vector v b) => ((a, b) -> Bool) -> Vector u v (a, b) -> Bool
any = G.any
maximum :: (G.Vector u a, G.Vector v b, Ord a, Ord b) => Vector u v (a, b) -> (a, b)
maximum = G.maximum
maximumBy :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> Ordering) -> Vector u v (a, b) -> (a, b)
maximumBy = G.maximumBy
minimum :: (G.Vector u a, G.Vector v b, Ord a, Ord b) => Vector u v (a, b) -> (a, b)
minimum = G.minimum
minimumBy :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> Ordering) -> Vector u v (a, b) -> (a, b)
minimumBy = G.minimumBy
maxIndex :: (G.Vector u a, G.Vector v b, Ord a, Ord b) => Vector u v (a, b) -> Int
maxIndex = G.maxIndex
maxIndexBy :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> Ordering) -> Vector u v (a, b) -> Int
maxIndexBy = G.maxIndexBy
minIndex :: (G.Vector u a, G.Vector v b, Ord a, Ord b) => Vector u v (a, b) -> Int
minIndex = G.minIndex
minIndexBy :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> Ordering) -> Vector u v (a, b) -> Int
minIndexBy = G.minIndexBy
foldM :: (Monad m, G.Vector u a, G.Vector v b) => (r -> (a, b) -> m r) -> r -> Vector u v (a, b) -> m r
foldM = G.foldM
fold1M :: (Monad m, G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> m (a, b)) -> Vector u v (a, b) -> m (a, b)
fold1M = G.fold1M
foldM' :: (Monad m, G.Vector u a, G.Vector v b) => (r -> (a, b) -> m r) -> r -> Vector u v (a, b) -> m r
foldM' = G.foldM'
fold1M' :: (Monad m, G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> m (a, b)) -> Vector u v (a, b) -> m (a, b)
fold1M' = G.fold1M'
foldM_ :: (Monad m, G.Vector u a, G.Vector v b) => (r -> (a, b) -> m r) -> r -> Vector u v (a, b) -> m ()
foldM_ = G.foldM_
fold1M_ :: (Monad m, G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> m (a, b)) -> Vector u v (a, b) -> m ()
fold1M_ = G.fold1M_
foldM'_ :: (Monad m, G.Vector u a, G.Vector v b) => (r -> (a, b) -> m r) -> r -> Vector u v (a, b) -> m ()
foldM'_ = G.foldM'_
fold1M'_ :: (Monad m, G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> m (a, b)) -> Vector u v (a, b) -> m ()
fold1M'_ = G.fold1M'_
prescanl :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
prescanl = G.prescanl
prescanl' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
prescanl' = G.prescanl'
postscanl :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
postscanl = G.postscanl
postscanl' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
postscanl' = G.postscanl'
scanl :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
scanl = G.scanl
scanl' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (a, b)) -> (a, b) -> Vector u v (c, d) -> Vector u v (a, b)
scanl' = G.scanl'
scanl1 :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> Vector u v (a, b)
scanl1 = G.scanl1
scanl1' :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> Vector u v (a, b)
scanl1' = G.scanl1'
prescanr :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
prescanr = G.prescanr
prescanr' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
prescanr' = G.prescanr'
postscanr :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
postscanr = G.postscanr
postscanr' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
postscanr' = G.postscanr'
scanr :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
scanr = G.scanr
scanr' :: (G.Vector u a, G.Vector v b, G.Vector u c, G.Vector v d) => ((a, b) -> (c, d) -> (c, d)) -> (c, d) -> Vector u v (a, b) -> Vector u v (c, d)
scanr' = G.scanr'
scanr1 :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> Vector u v (a, b)
scanr1 = G.scanr1
scanr1' :: (G.Vector u a, G.Vector v b) => ((a, b) -> (a, b) -> (a, b)) -> Vector u v (a, b) -> Vector u v (a, b)
scanr1' = G.scanr1'
projectFst :: Vector u v (a, b) -> u a
projectFst (V as _) = as
projectSnd :: Vector u v (a, b) -> v b
projectSnd (V _ bs) = bs
unsafeZip :: u a -> v b -> Vector u v (a, b)
unsafeZip = V
toList :: (G.Vector u a, G.Vector v b) => Vector u v (a, b) -> [(a, b)]
toList = G.toList
fromList :: (G.Vector u a, G.Vector v b) => [(a, b)] -> Vector u v (a, b)
fromList = G.fromList
fromListN :: (G.Vector u a, G.Vector v b) => Int -> [(a, b)] -> Vector u v (a, b)
fromListN = G.fromListN
unsafeFreeze :: (G.Vector u a, G.Vector v b, PrimMonad m) => G.Mutable (Vector u v) (PrimState m) (a, b) -> m (Vector u v (a, b))
unsafeFreeze = G.unsafeFreeze
unsafeThaw :: (G.Vector u a, G.Vector v b, PrimMonad m) => Vector u v (a, b) -> m (G.Mutable (Vector u v) (PrimState m) (a, b))
unsafeThaw = G.unsafeThaw
thaw :: (G.Vector u a, G.Vector v b, PrimMonad m) => Vector u v (a, b) -> m (G.Mutable (Vector u v) (PrimState m) (a, b))
thaw = G.thaw
freeze :: (G.Vector u a, G.Vector v b, PrimMonad m) => G.Mutable (Vector u v) (PrimState m) (a, b) -> m (Vector u v (a, b))
freeze = G.freeze
unsafeCopy
:: (G.Vector u a, G.Vector v b, PrimMonad m) => G.Mutable (Vector u v) (PrimState m) (a, b) -> Vector u v (a, b) -> m ()
unsafeCopy = G.unsafeCopy
copy :: (G.Vector u a, G.Vector v b, PrimMonad m) => G.Mutable (Vector u v) (PrimState m) (a, b) -> Vector u v (a, b) -> m ()
copy = G.copy