array-0.5.0.0: Mutable and immutable arrays

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.IArray)
Safe Haskell | Trustworthy
Language | Haskell2010

Data.Array.Unboxed

Contents

- Arrays with unboxed elements
- The overloaded immutable array interface

Description

Unboxed immutable arrays.

Synopsis

- data UArray i e
- module Data.Array.IArray

# Arrays with unboxed elements

data UArray i e

Arrays with unboxed elements. Instances of `IArray` are provided for `UArray` with certain element types (`Int`, `Float`, `Char`, etc.; see the `UArray` class for a full list).

A `UArray` will generally be more efficient (in terms of both time and space) than the equivalent `Array` with the same element type. However, `UArray` is strict in its elements - so don't use `UArray` if you require the non-strictness that `Array` provides.

Because the `IArray` interface provides operations overloaded on the type of the array, it should be possible to just change the array type being used by a program from say `Array` to `UArray` to get the benefits of unboxed arrays (don't forget to import Data.Array.Unboxed instead of Data.Array).

Instances

IArray UArray Bool |
IArray UArray Char |
IArray UArray Double |
IArray UArray Float |
IArray UArray Int |
IArray UArray Int8 |
IArray UArray Int16 |
IArray UArray Int32 |
IArray UArray Int64 |
IArray UArray Word |
IArray UArray Word8 |
IArray UArray Word16 |
IArray UArray Word32 |
IArray UArray Word64 |
IArray UArray (StablePtr a) |
IArray UArray (Ptr a) |
IArray UArray (FunPtr a) |
(Ix ix, Eq e, IArray UArray e) => Eq (UArray ix e) |
(Ix ix, Ord e, IArray UArray e) => Ord (UArray ix e) |
(Ix ix, Show ix, Show e, IArray UArray e) => Show (UArray ix e) |
Typeable (* -> * -> *) UArray |

# The overloaded immutable array interface

module Data.Array.IArray