BSD-3-Clause licensed by Joe Hermaszewski
Maintained by [email protected]
This version can be pinned in stack with:vector-sized-1.0.4.0@sha256:d5cdea82b87ff7a5158d784e6869866e6a2c258f0a035279e0168b55350a723f,1541

Module documentation for 1.0.4.0

Vector Sized

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.

[0.1.0.0] - 2016-02-28

  • Initial release.