| Copyright | (c) 2019-2023 Emily Pillmore |
|---|---|
| License | BSD-style |
| Maintainer | Emily Pillmore <emilypi@cohomolo.gy> |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Data.Vector.NonEmpty.Internal
Description
Internal module exposing the constructors for
NonEmptyVector and NonEmptyMVector.
Warning: Since the constructors are exposed here, by using this module, you take on the risks that you break the non-emptiness invariants of the main modules. Use at your own risk.
Since: 0.2.1.0
Synopsis
- newtype NonEmptyVector a = NonEmptyVector {}
- newtype NonEmptyMVector s a = NonEmptyMVector {}
- type NonEmptyIOVector = NonEmptyMVector RealWorld
- type NonEmptySTVector s = NonEmptyMVector s
Immutable boxed vectors
newtype NonEmptyVector a Source #
NonEmptyVector is a thin wrapper around Vector that
witnesses an API requiring non-empty construction,
initialization, and generation of non-empty vectors by design.
A newtype wrapper was chosen so that no new pointer indirection
is introduced when working with Vectors, and all performance
characteristics inherited from the Vector API still apply.
Since: 0.2.1.0
Constructors
| NonEmptyVector | |
Instances
Mutable boxed vectors
newtype NonEmptyMVector s a Source #
NonEmptyMVector is a thin wrapper around MVector that
witnesses an API requiring non-empty construction,
initialization, and generation of non-empty vectors by design.
A newtype wrapper was chosen so that no new pointer indirection
is introduced when working with MVectors, and all performance
characteristics inherited from the MVector API still apply.
Since: 0.2.1.0
Constructors
| NonEmptyMVector | |
Mutable vector aliases
type NonEmptyIOVector = NonEmptyMVector RealWorld Source #
NonEmptyMVector parametrized by PrimState
Since: 0.2.1.0
type NonEmptySTVector s = NonEmptyMVector s Source #
NonEmptyMVector parametrized by ST
Since: 0.2.1.0