vector-0.9.1: Efficient Arrays

# vector-0.9.1: Efficient Arrays

An efficient implementation of Int-indexed arrays (both mutable and immutable), with a powerful loop optimisation framework .

It is structured as follows:

Data.Vector
  Boxed vectors of arbitrary types.
Data.Vector.Unboxed
  Unboxed vectors with an adaptive representation based on data type families.
Data.Vector.Storable
  Unboxed vectors of `Storable` types.
Data.Vector.Primitive
  Unboxed vectors of primitive types as defined by the `primitive` package. Data.Vector.Unboxed is more flexible at no performance cost.
Data.Vector.Generic
  Generic interface to the vector types.

Each module has a `Safe` version with is marked as `Trustworthy` (see http://hackage.haskell.org/trac/ghc/wiki/SafeHaskell).

There is also a (draft) tutorial on common uses of vector.

- http://haskell.org/haskellwiki/Numeric_Haskell:_A_Vector_Tutorial

Please use the project trac to submit bug reports and feature requests.

- http://trac.haskell.org/vector

Changes in version 0.9.1

- New functions: `unsafeFromForeignPtr0` and `unsafeToForeignPtr0`
- Small performance improvements
- Fixes for GHC 7.4

Changes in version 0.9

- `MonadPlus` instance for boxed vectors
- Export more `construct` and `constructN` from `Safe` modules
- Require `primitive-0.4.0.1`

Changes in version 0.8

- New functions: `constructN`, `constructrN`
- Support for GHC 7.2 array copying primitives
- New fixity for `(!)`
- Safe Haskell support (contributed by David Terei)
- `Functor`, `Monad`, `Applicative`, `Alternative`, `Foldable` and `Traversable` instances for boxed vectors (WARNING: they tend to be slow and are only provided for completeness)
- `Show` instances for immutable vectors follow containers conventions
- `Read` instances for all immutable vector types
- Performance improvements

Modules

- Data
  - Data.Vector
    - Fusion
      - Data.Vector.Fusion.Stream
        - Data.Vector.Fusion.Stream.Monadic
          - Data.Vector.Fusion.Stream.Monadic.Safe
        - Data.Vector.Fusion.Stream.Safe
        - Data.Vector.Fusion.Stream.Size
      - Data.Vector.Fusion.Util
    - Data.Vector.Generic
      - Data.Vector.Generic.Mutable
        - Data.Vector.Generic.Mutable.Safe
      - Data.Vector.Generic.New
        - Data.Vector.Generic.New.Safe
      - Data.Vector.Generic.Safe
    - Internal
      - Data.Vector.Internal.Check
    - Data.Vector.Mutable
      - Data.Vector.Mutable.Safe
    - Data.Vector.Primitive
      - Data.Vector.Primitive.Mutable
        - Data.Vector.Primitive.Mutable.Safe
      - Data.Vector.Primitive.Safe
    - Data.Vector.Safe
    - Data.Vector.Storable
      - Data.Vector.Storable.Internal
      - Data.Vector.Storable.Mutable
    - Data.Vector.Unboxed
      - Data.Vector.Unboxed.Mutable
        - Data.Vector.Unboxed.Mutable.Safe
      - Data.Vector.Unboxed.Safe