-- | Unoxed @Vector@ unsafe functions. These perform no bounds
--   checking, and may cause segmentation faults etc.!  Import as:
--
-- > import qualified RIO.Vector.Unoxed.Unsafe as VU'
module RIO.Vector.Unboxed.Unsafe
  (
  -- * Accessors
  -- ** Indexing
    Data.Vector.Unboxed.unsafeIndex
  , Data.Vector.Unboxed.unsafeHead
  , Data.Vector.Unboxed.unsafeLast

  -- ** Monadic indexing
  , Data.Vector.Unboxed.unsafeIndexM
  , Data.Vector.Unboxed.unsafeHeadM
  , Data.Vector.Unboxed.unsafeLastM

  -- ** Extracting subvectors
  , Data.Vector.Unboxed.unsafeSlice
  , Data.Vector.Unboxed.unsafeInit
  , Data.Vector.Unboxed.unsafeTail
  , Data.Vector.Unboxed.unsafeTake
  , Data.Vector.Unboxed.unsafeDrop

  -- * Modifying vectors
  -- ** Bulk updates
  , Data.Vector.Unboxed.unsafeUpd
  , Data.Vector.Unboxed.unsafeUpdate
  , Data.Vector.Unboxed.unsafeUpdate_

  -- ** Accumulations
  , Data.Vector.Unboxed.unsafeAccum
  , Data.Vector.Unboxed.unsafeAccumulate
  , Data.Vector.Unboxed.unsafeAccumulate_

  -- ** Permutations
  , Data.Vector.Unboxed.unsafeBackpermute

  -- * Conversions
  -- ** Mutable vectors
  , Data.Vector.Unboxed.unsafeFreeze
  , Data.Vector.Unboxed.unsafeThaw
  , Data.Vector.Unboxed.unsafeCopy
  ) where

import qualified Data.Vector.Unboxed