This package exports a newtype tagging the vectors from the
vector package with a type level
natural representing their size.
It also exports a few functions from vector appropriately retyped.

This package is fairly similar to
the fixed-vector package.
While both provide vectors of statically know length they use completely
different implementation with different tradeoffs. vector-sized is a newtype
wrapper over vector thus it’s able to handle vectors of arbitrary length but
have to carry runtime representation of length which is significant memory
overhead for small vectors. fixed-vector defines all functions as
manipulations of Church-encoded product types (∀r. (a→a→r) → r for 2D vectors)
so it can work for both arbitrary product types like data V2 a = V2 a a and
opaque length-parametrized vectors provided by library. As consequence of
implementation it can’t handle vectors larger than tens of elements.

The initial code for this package was written by @bgamari in a PR for vulkan

Changes

Change Log

[1.0.4.0] - 2018-07-14

Add Monad instance for boxed vectors.

[1.0.3.1] - 2018-07-10

Loosen upper bound on distributive

[1.0.3.0] - 2018-06-24

Remove redundant KnownNat constraints

[1.0.2.0] - 2018-05-15

not-home haddock annotations for Internal modules, for more helpful linking

Fix build with indexed-list-literals-0.2.1.0

[1.0.1.0] - 2018-04-12

Add Representable and Distributive instances for sized boxed vectors

Use newer version of indexed-list-literals to allow a fully featured compile on ghc 8.4

[1.0.0.0] - 2018-03-20

More functions using Finite instead of Int

Add Read and Semigroup instances

Performance improvements for Applicative

Add a knownLength function

Add fromTuple (ghc < 8.3 for now)

Add sized variants of mutable vectors

Expose sized vector constructors from Internal modules

Huge thanks to all the contributors!

[0.6.1.0] - 2017-08-04

Add lenses ix, _head and _last

[0.6.0.0] - 2017-06-07

Make ordering of additions in types be more consistent

Make slice more general

Num, Fractional, and Floating instances for vectors

[0.5.1.0] - 2017-02-01

Loosen upper bound on vector

[0.5.0.0] - 2017-01-04

Use Finite from finite-typelits for indexing.

[0.4.1.0] - 2016-11-24

Add withSized and withSizedList

[0.4.0.1] - 2016-11-12

Raise lower bound on base to 4.9

[0.4.0.0] - 2016-11-01

Correct type signature on index'

[0.3.3.0] - 2016-08-10

Add instances for Data, Typeable and Generic

[0.3.2.0] - 2016-03-29

Add overlapping Monoid instance for zero length vectors

[0.3.1.0] - 2016-03-29

Add Monoid instance

[0.3.0.0] - 2016-03-22

Export all of the available functionality from Data.Vector.Generic.

Add Storable

Add Unboxed

[0.2.0.0] - 2016-02-29

Tighter bounds on base to avoid compiling with GHC < 7.10.