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