-- | Generic @Vector@ interface unsafe functions. These perform no bounds

--   checking, and may cause segmentation faults etc.!  Import as:

--

-- > import qualified RIO.Vector.Unsafe as V'

module RIO.Vector.Unsafe
  (
  -- * Immutable vectors

    Data.Vector.Generic.Vector(..)

  -- * Accessors

  -- ** Indexing

  , Data.Vector.Generic.unsafeIndex
  , Data.Vector.Generic.unsafeHead
  , Data.Vector.Generic.unsafeLast

  -- ** Monadic indexing

  , Data.Vector.Generic.unsafeIndexM
  , Data.Vector.Generic.unsafeHeadM
  , Data.Vector.Generic.unsafeLastM

  -- ** Extracting subvectors

  , Data.Vector.Generic.unsafeSlice
  , Data.Vector.Generic.unsafeInit
  , Data.Vector.Generic.unsafeTail
  , Data.Vector.Generic.unsafeTake
  , Data.Vector.Generic.unsafeDrop

  -- * Modifying vectors

  -- ** Bulk updates

  , Data.Vector.Generic.unsafeUpd
  , Data.Vector.Generic.unsafeUpdate
  , Data.Vector.Generic.unsafeUpdate_

  -- ** Accumulations

  , Data.Vector.Generic.unsafeAccum
  , Data.Vector.Generic.unsafeAccumulate
  , Data.Vector.Generic.unsafeAccumulate_

  -- ** Permutations

  , Data.Vector.Generic.unsafeBackpermute

  -- * Conversions

  -- ** Mutable vectors

  , Data.Vector.Generic.unsafeFreeze
  , Data.Vector.Generic.unsafeThaw
  , Data.Vector.Generic.unsafeCopy
  ) where

import qualified Data.Vector.Generic