rio-0.1.23.0: src/RIO/Vector.hs
{-# LANGUAGE CPP #-}
-- | Generic @Vector@ interface. Import as:
--
-- > import qualified RIO.Vector as V
--
-- This module does not export any partial or unsafe functions. For those, see
-- "RIO.Vector.Partial" and "RIO.Vector.Unsafe"
module RIO.Vector
(
-- * Immutable vectors
Data.Vector.Generic.Vector
-- * Accessors
-- ** Length information
, Data.Vector.Generic.length
, Data.Vector.Generic.null
-- ** Indexing
, (Data.Vector.Generic.!?)
-- ** Extracting subvectors
, Data.Vector.Generic.slice
, Data.Vector.Generic.take
, Data.Vector.Generic.drop
, Data.Vector.Generic.splitAt
-- * Construction
-- ** Initialisation
, Data.Vector.Generic.empty
, Data.Vector.Generic.singleton
, Data.Vector.Generic.replicate
, Data.Vector.Generic.generate
, Data.Vector.Generic.iterateN
-- ** Monadic initialisation
, Data.Vector.Generic.replicateM
, Data.Vector.Generic.generateM
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.iterateNM
#endif
, Data.Vector.Generic.create
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.createT
#endif
-- ** Unfolding
, Data.Vector.Generic.unfoldr
, Data.Vector.Generic.unfoldrN
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.unfoldrM
, Data.Vector.Generic.unfoldrNM
#endif
, Data.Vector.Generic.constructN
, Data.Vector.Generic.constructrN
-- ** Enumeration
, Data.Vector.Generic.enumFromN
, Data.Vector.Generic.enumFromStepN
, Data.Vector.Generic.enumFromTo
, Data.Vector.Generic.enumFromThenTo
-- ** Concatenation
, Data.Vector.Generic.cons
, Data.Vector.Generic.snoc
, (Data.Vector.Generic.++)
, Data.Vector.Generic.concat
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.concatNE
#endif
-- ** Restricting memory usage
, Data.Vector.Generic.force
-- * Modifying vectors
-- ** Permutations
, Data.Vector.Generic.reverse
-- ** Safe destructive update
, Data.Vector.Generic.modify
-- * Elementwise operations
-- ** Indexing
, Data.Vector.Generic.indexed
-- ** Mapping
, Data.Vector.Generic.map
, Data.Vector.Generic.imap
, Data.Vector.Generic.concatMap
-- ** Monadic mapping
, Data.Vector.Generic.mapM
, Data.Vector.Generic.imapM
, Data.Vector.Generic.mapM_
, Data.Vector.Generic.imapM_
, Data.Vector.Generic.forM
, Data.Vector.Generic.forM_
-- ** Zipping
, Data.Vector.Generic.zipWith
, Data.Vector.Generic.zipWith3
, Data.Vector.Generic.zipWith4
, Data.Vector.Generic.zipWith5
, Data.Vector.Generic.zipWith6
, Data.Vector.Generic.izipWith
, Data.Vector.Generic.izipWith3
, Data.Vector.Generic.izipWith4
, Data.Vector.Generic.izipWith5
, Data.Vector.Generic.izipWith6
, Data.Vector.Generic.zip
, Data.Vector.Generic.zip3
, Data.Vector.Generic.zip4
, Data.Vector.Generic.zip5
, Data.Vector.Generic.zip6
-- ** Monadic zipping
, Data.Vector.Generic.zipWithM
, Data.Vector.Generic.izipWithM
, Data.Vector.Generic.zipWithM_
, Data.Vector.Generic.izipWithM_
-- ** Unzipping
, Data.Vector.Generic.unzip
, Data.Vector.Generic.unzip3
, Data.Vector.Generic.unzip4
, Data.Vector.Generic.unzip5
, Data.Vector.Generic.unzip6
-- * Working with predicates
-- ** Filtering
, Data.Vector.Generic.filter
, Data.Vector.Generic.ifilter
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.uniq
, Data.Vector.Generic.mapMaybe
, Data.Vector.Generic.imapMaybe
#endif
, Data.Vector.Generic.filterM
, Data.Vector.Generic.takeWhile
, Data.Vector.Generic.dropWhile
-- ** Partitioning
, Data.Vector.Generic.partition
, Data.Vector.Generic.unstablePartition
, Data.Vector.Generic.span
, Data.Vector.Generic.break
-- ** Searching
, Data.Vector.Generic.elem
, Data.Vector.Generic.notElem
, Data.Vector.Generic.find
, Data.Vector.Generic.findIndex
, Data.Vector.Generic.findIndices
, Data.Vector.Generic.elemIndex
, Data.Vector.Generic.elemIndices
-- * Folding
, Data.Vector.Generic.foldl
, Data.Vector.Generic.foldl'
, Data.Vector.Generic.foldr
, Data.Vector.Generic.foldr'
, Data.Vector.Generic.ifoldl
, Data.Vector.Generic.ifoldl'
, Data.Vector.Generic.ifoldr
, Data.Vector.Generic.ifoldr'
-- ** Specialised folds
, Data.Vector.Generic.all
, Data.Vector.Generic.any
, Data.Vector.Generic.and
, Data.Vector.Generic.or
, Data.Vector.Generic.sum
, Data.Vector.Generic.product
-- ** Monadic folds
, Data.Vector.Generic.foldM
, Data.Vector.Generic.ifoldM
, Data.Vector.Generic.foldM'
, Data.Vector.Generic.ifoldM'
, Data.Vector.Generic.foldM_
, Data.Vector.Generic.ifoldM_
, Data.Vector.Generic.foldM'_
, Data.Vector.Generic.ifoldM'_
-- ** Monadic sequencing
, Data.Vector.Generic.sequence
, Data.Vector.Generic.sequence_
-- * Prefix sums (scans)
, Data.Vector.Generic.prescanl
, Data.Vector.Generic.prescanl'
, Data.Vector.Generic.postscanl
, Data.Vector.Generic.postscanl'
, Data.Vector.Generic.scanl
, Data.Vector.Generic.scanl'
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.iscanl
, Data.Vector.Generic.iscanl'
#endif
, Data.Vector.Generic.prescanr
, Data.Vector.Generic.prescanr'
, Data.Vector.Generic.postscanr
, Data.Vector.Generic.postscanr'
, Data.Vector.Generic.scanr
, Data.Vector.Generic.scanr'
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.iscanr
, Data.Vector.Generic.iscanr'
#endif
-- * Conversions
-- ** Lists
, Data.Vector.Generic.toList
, Data.Vector.Generic.fromList
, Data.Vector.Generic.fromListN
-- ** Different vector types
, Data.Vector.Generic.convert
-- ** Mutable vectors
, Data.Vector.Generic.freeze
, Data.Vector.Generic.thaw
, Data.Vector.Generic.copy
-- * Fusion support
-- ** Conversion to/from Bundles
, Data.Vector.Generic.stream
, Data.Vector.Generic.unstream
, Data.Vector.Generic.streamR
, Data.Vector.Generic.unstreamR
-- ** Recycling support
, Data.Vector.Generic.new
, Data.Vector.Generic.clone
-- * Utilities
-- ** Comparisons
, Data.Vector.Generic.eq
, Data.Vector.Generic.cmp
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.eqBy
, Data.Vector.Generic.cmpBy
#endif
-- ** Show and Read
, Data.Vector.Generic.showsPrec
, Data.Vector.Generic.readPrec
#if MIN_VERSION_vector(0,12,0)
, Data.Vector.Generic.liftShowsPrec
, Data.Vector.Generic.liftReadsPrec
#endif
-- ** @Data@ and @Typeable@
, Data.Vector.Generic.gfoldl
, Data.Vector.Generic.dataCast
, Data.Vector.Generic.mkType
) where
import qualified Data.Vector.Generic