    {-# OPTIONS_HADDOCK not-home #-}

    -- |
    --
    -- Module      :  GHC.Arr
    -- Copyright   :  (c) The University of Glasgow, 1994-2000
    -- License     :  see libraries/base/LICENSE
    --
    -- Maintainer  :  ghc-devs@haskell.org
    -- Stability   :  internal
    -- Portability :  non-portable (GHC extensions)
    --
    -- GHC\'s array implementation.
    --
    -- /The API of this module is unstable and not meant to be consumed by the general public./
    -- If you absolutely must depend on it, make sure to use a tight upper
    -- bound, e.g., @base < 4.X@ rather than @base < 5@, because the interface can
    -- change rapidly without much warning.
    --

    module GHC.Arr
        (Ix(..),
         Array(..),
         STArray(..),
         arrEleBottom,
         array,
         listArray,
         (!),
         safeRangeSize,
         negRange,
         safeIndex,
         badSafeIndex,
         bounds,
         numElements,
         numElementsSTArray,
         indices,
         elems,
         assocs,
         accumArray,
         adjust,
         (//),
         accum,
         amap,
         ixmap,
         eqArray,
         cmpArray,
         cmpIntArray,
         newSTArray,
         boundsSTArray,
         readSTArray,
         writeSTArray,
         freezeSTArray,
         thawSTArray,
         foldlElems,
         foldlElems',
         foldl1Elems,
         foldrElems,
         foldrElems',
         foldr1Elems,
         -- *  Unsafe operations
         fill,
         done,
         unsafeArray,
         unsafeArray',
         lessSafeIndex,
         unsafeAt,
         unsafeReplace,
         unsafeAccumArray,
         unsafeAccumArray',
         unsafeAccum,
         unsafeReadSTArray,
         unsafeWriteSTArray,
         unsafeFreezeSTArray,
         unsafeThawSTArray
         ) where

    import GHC.Internal.Arr