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