This package presents thin wrappers around mutable and immutable Data.Vector types. The entire Vector API is supported for both sets of boxed vectors, with future plans to support unboxed, primitive, storable, and generic vectors.
There are no external dependencies that are not already in
Every “container” in the Haskell ecosystem features a non-empty variant, including the venerable list, aside from
vector. Many (including myself) use
vector for its incredible performance characteristics achieved over many years by the CLC and authors of the library. But many of us also want to adhere to the principle of least power, and not have to worry about whether
tail (for example) are safe. This package addresses both of the previous points. No new pointer indirection is exposed by this library except at construction (and even then -
unsafe constructors are supplied), with as much reuse of
vector’s library as possible to make sure asymptotics stay the same.
Revision history for nonempty-vector
snocVprimitives for consing a vector to create a nonempty one. (#8) - Thanks @AlistairB!
- Updated CI and cabal support
- Expose constructors in new
- Modules are now marked trustworthy
@sinceannotations have been added.
- Removed spurious dependency on
Missed a strictness tick in
INLINE pragma for slice
Alternativeinstances as they can construct empty
Read1instances with safe cons
Add doctests for all new functions + many familiar ones
MonadFailinstance for the sake of backcompat with LTS < 13
- Drop Cabal version down to 2.0
0.0.1.1 – 2019-10-20
- clean up docs
0.0.1.0 – 2019-10-20
- First version. Released on an unsuspecting world.