Mutable and immutable arrays

Version on this page:
LTS Haskell 22.30:
Stackage Nightly 2024-07-21:
Latest on Hackage:

See all snapshots array appears in

BSD-3-Clause licensed
Maintained by [email protected]
This version can be pinned in stack with:array-,1588

In addition to providing the Data.Array module as specified in the Haskell 2010 Language Report, this package also defines the classes IArray of immutable arrays and MArray of arrays mutable within appropriate monads, as well as some instances of these classes.


Changelog for array package July 2023


  • listArray and newListArray are now good consumers of the input list
  • Bump base bound to <4.20


  • Add the genArray and newGenArray function
  • Add Data.Array.MArray.modifyArray and Data.Array.MArray.modifyArray' These are also exposed from Data.Array.IO, Data.Array.ST, and Data.Array.Storable.
  • Add Data.Array.IArray.(!?)


  • Array docs regarding constructing arrays
  • Update note [Inlining and fusion]
  • Unboxed Bool arrays no longer cause spurious alarms when used with -fcheck-prim-bounds
  • Replace Haddock hide pragma with not-home to make the Haddocks more readable February 2022

  • Compatibility with GHC’s new JavaScript backend. July 2019

  • Add a Read instance for UArray Oct 2018

  • Bundled with GHC 8.6.2
  • Drop support for GHC versions prior to GHC 8.0 Jul 2017

  • Bundled with GHC 8.2.1
  • Overflow check in unsafeNewArray (#229)
  • Fix and simplify handling of Bool arrays
  • Export unsafeFreezeIOUArray from Data.Array.IO.Internals
  • Drop support for GHC versions prior to GHC 7.8 Apr 2016

  • Bundled with GHC 8.0.1
  • Use @since syntax in Haddock comments
  • Don’t needlessly call bounds in Data.Array.Base.elems (#10014) Mar 2015

  • Bundled with GHC 7.10.1
  • Add role annotations for GHC >= 7.8 (#9220) Nov 2013

  • Update to Cabal 1.10 format
  • Remove NHC and Hugs specific code
  • Remove deprecated function exports Data.Array.IO.castIOUArray, Data.Array.MArray.unsafeFreeze, Data.Array.MArray.unsafeThaw, and Data.Array.ST.castSTUArray; These functions are still available from the Data.Array.Unsafe module. Sep 2012

  • Bundled with GHC 7.6.1
  • Fix inline rule shadowing warnings Feb 2012

  • Bundled with GHC 7.4.1
  • Add support for SafeHaskell
  • New Data.Array.IO.Safe module
  • New module
  • New module
  • New Data.Array.Storable.Internals module
  • New Data.Array.Storable.Safe module
  • New Data.Array.Unsafe module