nonempty-vector: Non-empty vectors

[ bsd3, data, library ] [ Propose Tags ] [ Report a vulnerability ]
Versions [RSS] 0.0.1.0, 0.0.1.1, 0.1.0.0, 0.2.0.0, 0.2.0.1, 0.2.0.2, 0.2.1.0, 0.2.2.0, 0.2.3, 0.2.4, 0.3, 1.0
Change log CHANGELOG.md
Dependencies base (>=4.16 && <4.23), deepseq (>=1.4 && <1.6), primitive (>=0.6 && <0.10), vector (>=0.12 && <0.14) [details]
Tested with ghc ==9.4.8 || ==9.6.7 || ==9.8.4 || ==9.10.3 || ==9.12.4 || ==9.14.1
License BSD-3-Clause
Copyright (c) 2019-2026 Emily Pillmore <emilypi@cohomolo.gy>
Author Emily Pillmore
Maintainer emilypi@cohomolo.gy
Uploaded by topos at 2026-10-27T21:53:05Z
Category Data
Home page https://github.com/emilypi/nonempty-vector
Bug tracker https://github.com/emilypi/nonempty-vector/issues
Source repo head: git clone https://github.com/emilypi/nonempty-vector.git
Distributions Arch:0.2.4, Fedora:0.2.4, LTSHaskell:0.2.4, Stackage:0.2.4
Reverse Dependencies 7 direct, 38 indirect [details]
Downloads 15581 total (71 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2026-10-27 [all 1 reports]

Readme for nonempty-vector-1.0

[back to package description]

Non-empty Vectors

Build Status Hackage

This package provides thin wrappers around mutable and immutable vector types that enforce non-emptiness, with APIs for both boxed and unboxed storage.

Storage Immutable Mutable
Boxed Data.Vector.NonEmpty Data.Vector.NonEmpty.Mutable
Unboxed Data.Vector.NonEmpty.Unboxed Data.Vector.NonEmpty.Unboxed.Mutable

The unboxed API requires Unbox instances for element types. Operations that can produce an empty result return an ordinary vector or Maybe, as appropriate. The Internal modules expose constructors for users who manage the non-emptiness invariant themselves.

Library dependencies are base, deepseq, primitive, and vector.