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