content: {-# 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
  