Data.Vector.Generic

# Immutable vectors

class Vector v a

type family Mutable v :: * -> * -> *

# Accessors

## Length information

length

null

## Indexing

(!)

(!?)

head

last

unsafeIndex

unsafeHead

unsafeLast

## Monadic indexing

indexM

headM

lastM

unsafeIndexM

unsafeHeadM

unsafeLastM

## Extracting subvectors (slicing)

slice

init

tail

take

drop

unsafeSlice

unsafeInit

unsafeTail

unsafeTake

unsafeDrop

# Construction

## Initialisation

empty

singleton

replicate

generate

## Monadic initialisation

replicateM

create

## Unfolding

unfoldr

unfoldrN

## Enumeration

enumFromN

enumFromStepN

enumFromTo

enumFromThenTo

## Concatenation

cons

snoc

(++)

concat

## Restricting memory usage

force

# Modifying vectors

## Bulk updates

(//)

update

update_

unsafeUpd

unsafeUpdate

unsafeUpdate_

## Accumulations

accum

accumulate

accumulate_

unsafeAccum

unsafeAccumulate

unsafeAccumulate_

## Permutations

reverse

backpermute

unsafeBackpermute

## Safe destructive updates

modify

# Elementwise operations

## Mapping

map

imap

concatMap

## Monadic mapping

mapM

mapM_

forM

forM_

## Zipping

zipWith

zipWith3

zipWith4

zipWith5

zipWith6

izipWith

izipWith3

izipWith4

izipWith5

izipWith6

zip

zip3

zip4

zip5

zip6

## Monadic zipping

zipWithM

zipWithM_

## Unzipping

unzip

unzip3

unzip4

unzip5

unzip6

# Working with predicates

## Filtering

filter

ifilter

filterM

takeWhile

dropWhile

## Partitioning

partition

unstablePartition

span

break

## Searching

elem

notElem

find

findIndex

findIndices

elemIndex

elemIndices

# Folding

foldl

foldl1

foldl'

foldl1'

foldr

foldr1

foldr'

foldr1'

ifoldl

ifoldl'

ifoldr

ifoldr'

## Specialised folds

all

any

and

or

sum

product

maximum

maximumBy

minimum

minimumBy

minIndex

minIndexBy

maxIndex

maxIndexBy

## Monadic folds

foldM

foldM'

fold1M

fold1M'

# Prefix sums (scans)

prescanl

prescanl'

postscanl

postscanl'

scanl

scanl'

scanl1

scanl1'

prescanr

prescanr'

postscanr

postscanr'

scanr

scanr'

scanr1

scanr1'

# Conversions

## Lists

toList

fromList

fromListN

## Different vector types

convert

## Mutable vectors

freeze

thaw

copy

unsafeFreeze

unsafeThaw

unsafeCopy

# Fusion support

## Conversion to/from Streams

stream

unstream

streamR

unstreamR

## Recycling support

new

clone

# Utilities

## Comparisons

eq

cmp

## `Data` and `Typeable`

gfoldl

dataCast

mkType