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.