{-# LANGUAGE Trustworthy #-}------------------------------------------------------------------------------- |-- Module : Data.Array.IArray-- Copyright : (c) The University of Glasgow 2001-- License : BSD-style (see the file libraries/base/LICENSE)---- Maintainer : libraries@haskell.org-- Stability : experimental-- Portability : non-portable (uses Data.Array.Base)---- Immutable arrays, with an overloaded interface. For array types which-- can be used with this interface, see the 'Array' type exported by this-- module and the "Data.Array.Unboxed" module. Other packages, such as-- diffarray, also provide arrays using this interface.-------------------------------------------------------------------------------moduleData.Array.IArray(-- * Array classesIArray ,-- :: (* -> * -> *) -> * -> classmoduleData.Ix,-- * Immutable non-strict (boxed) arraysArray,-- * Array constructionarray ,-- :: (IArray a e, Ix i) => (i,i) -> [(i, e)] -> a i elistArray ,-- :: (IArray a e, Ix i) => (i,i) -> [e] -> a i eaccumArray ,-- :: (IArray a e, Ix i) => (e -> e' -> e) -> e -> (i,i) -> [(i, e')] -> a i egenArray ,-- :: (IArray a e, Ix i) => (i,i) -> (i -> e) -> a i e-- * Accessing arrays(!) ,-- :: (IArray a e, Ix i) => a i e -> i -> e(!?) ,-- :: (IArray a e, Ix i) => a i e -> i -> Maybe ebounds ,-- :: (HasBounds a, Ix i) => a i e -> (i,i)indices ,-- :: (HasBounds a, Ix i) => a i e -> [i]elems ,-- :: (IArray a e, Ix i) => a i e -> [e]assocs ,-- :: (IArray a e, Ix i) => a i e -> [(i, e)]-- * Array foldsfoldrArray ,foldlArray' ,foldlArray ,foldrArray' ,traverseArray_ ,forArray_ ,foldlArrayM' ,foldrArrayM' ,-- * Incremental array updates(//) ,-- :: (IArray a e, Ix i) => a i e -> [(i, e)] -> a i eaccum ,-- :: (IArray a e, Ix i) => (e -> e' -> e) -> a i e -> [(i, e')] -> a i e-- * Derived arraysamap ,-- :: (IArray a e', IArray a e, Ix i) => (e' -> e) -> a i e' -> a i eixmap ,-- :: (IArray a e, Ix i, Ix j) => (i,i) -> (i -> j) -> a j e -> a i e)whereimportData.IximportData.Array (Array)importData.Array.Base