fixed-vector
Generic vectors with statically known size.
| LTS Haskell 24.16: | 2.0.0.0 |
| Stackage Nightly 2025-10-24: | 2.0.0.0 |
| Latest on Hackage: | 2.0.0.0 |
fixed-vector-2.0.0.0@sha256:4a4249cd8446df269b8a817d5c2d48d4e31f2eb8530a7ab169c230232bf66892,4269Module documentation for 2.0.0.0
Generic library for vectors with statically known size. Implementation is based on http://unlines.wordpress.com/2010/11/15/generics-for-small-fixed-size-vectors/ Same functions could be used to work with both ADT based vector like . > data Vec3 a = a a a . Tuples are vectors too: . >>> sum (1,2,3) 6 . Vectors which are represented internally by arrays are provided by library. Both boxed and unboxed arrays are supported. . Library is structured as follows: . * Data.Vector.Fixed Generic API. It's suitable for both ADT-based vector like Complex and array-based ones. . * Data.Vector.Fixed.Cont Continuation based vectors. Internally all functions use them. . * Data.Vector.Fixed.Mutable Type classes for array-based implementation and API for working with mutable state. . * Data.Vector.Fixed.Unboxed Unboxed vectors. . * Data.Vector.Fixed.Boxed Boxed vector which can hold elements of any type. . * Data.Vector.Fixed.Storable Unboxed vectors of Storable types. . * Data.Vector.Fixed.Primitive Unboxed vectors based on pritimive package.
Changes
2.0.0.0 [2025.07.10]
-
Type family
Dimreturns Peano numbers instead of standard type level naturals.Indextype class restored and all indexing operation are performed inAritysimplifiedCVecPeanodropped andContVecis parameterized using Peano numbers.
-
In
ArityPeanotype class methodsreverseFandgunfoldFare replaced with more generalaccumPeanoandreducePeano. -
Unboxvector are fully reworked. All uses of data types withUnboxinstances which are defined in the library exceptBoolshould work without changes. -
Data.Vector.Fixed.Cont.aritydropped. -
Type of
D.V.F.Cont.withFungeneralized. -
Type class
VectorNdropped. UseQuantifiedConstraintsinstead. -
Show instance now has form
[...]instead offromList [...]. -
ViaFixednewtype wrapper for deriving instances is added.StorableViaFixedis removed. -
Data.Vector.Fixed.Storable.unsafeWithensures that pointer won’t get GC’d while function runs. -
Data.Vector.Fixed.sequenceAis deprecated in favor ofsequence. -
foldl'andifoldl'functions added. -
Implement
sumas in terms offoldl'.
1.2.3.0 [2023-10-31]
- Pattern
V1added COMPLETEpragmas added for patternsV1,V2,V3,V4
1.2.2.1 [2022-12-29]
- Newtype
StorableViaFixedfor derivingStorableinstances added.
1.2.1.1 [2022-12-26]
- Fixed bug in
any(#18)
1.2.1.0 [2021-11-13]
- Support for GHC7.10 dropped.
- Pattern synonyms
V2,V3,V4added. replicate{,M}andgenerate{,M}added.- Functions
mk6,mk7,mk8added.
1.2.0.0 [2018-09-02]
Showinstance for data type now respect precedence.
1.1.0.0 [2018-03-11]
- GHC8.4 compatibility release. Semigroup instances added and semigroup dependency added for GHC7.10
1.0.0.0 [2017-11-06]
- Vector length now expressed as GHC’s type level literals. Underlying
implementation still uses Peano numbers to perform induction. This doesn’t
change user facing API much. Notably
FlexibleInstancesandGADTs/TypeFamilesare now required to writeArityconstraint. Monadconstraint is relaxed toApplicativewhere applicable. Duplicate functions are removed (sequence&sequenceA→sequence, etc)- Module
Data.Vector.Fixed.Monomorphicis dropped. - Construction of N-ary vectors reworked.
Maketype class is gone. - Boxed arrays now use SmallArrays internally.
overlapsis removed from API for mutable vectors.Data.Vector.Fixed.defaultRnfis added.Data.Vector.Fixed.Mutable.lengthIis dropped.
0.9.0.0 [2016-09-14]
- Simplification of
Aritytype class. This change shouldn’t affect client code. - Support for GHC < 7.8 is droppped.
- Fixed bug in
any.
0.8.1.0 [2015-08-27]
findfunction added.
0.8.0.0 [2015-04-06]
- NFData instances for all data type.
- Storable instances for all data types and default implementation of Storable’s methods added.
- {i,}zipWith3 and {i,}zipWithM_ added.
0.7.0.3 [2015-01-03]
- GHC 7.10 support
0.7.0.0 [2014-08-15]
- Type level addition for unary numbers added
concatfunction added- More consistent naming for functions for working with
Fun
0.6.4.0 [2014-04-15]
- Isomorphism between Peano numbers and Nat added. (GHC >= 7.8)
0.6.3.1 [2014-03-12]
- Documentation fixes.
0.6.3.0 [2014-02-22]
- Left scans added.
0.6.2.0 [2014-02-07]
Vec1type synonym for boxed/unboxed/etc. vectors added.- Vector instance for Data.Typeable.Proxy (GHC >= 7.8)
0.6.1.1 [2014-02-04]
- GHC 7.8 support
0.6.1.0 [2014-01-24]
distributecollectand their monadic variants added.
0.6.0.0 [2013-11-17]
- Data instance for all array-based vectors added.
- Storable instance added for
Storable.Vec. - Monoid instances added for all vectors.
0.5.1.0 [2013-08-06]
- Zero-element vector
Empty'is added.
0.5.0.0 [2013-08-02]
ContVecnow behaves like normal vector.Aritytype class is reworked.Iddata type is removed.- Construction of vector reworked.
reverse,snoc,consV,foldandfoldMapare added.- Type changing maps and zips are added.
- Vector indexing with type level numbers is added.
- Twan van Laarhoven’s lens added. (
elementandelementTy) - Ord instances added to vector data types defined in the library.
0.4.4.0 [2013-06-13]
- Functor and Applicative instances are added to Id.
0.4.3.0 [2013-05-18]
- Typeable instance for S and Z added.
0.4.2.0 [2013-05-01]
- 1-tuple
Onlyadded. fromList'and fromListM added.- apply functions from Arity type class generalized.
0.4.1.0 [2013-04-29]
consfunction added.- Getter for
Fundata type added.
0.4.0.0 [2013-04-04]
- Wrapper for monomorphics vectors is added.
VecListis reimplemented as GADT and constructors are exported.- Constructor of
ContVecTis exported - Empty
ContVecTis implemented asempty. - Typeable, Foldable and Traversable instances are added where appropriate
0.3.0.0 [2013-03-06]
- Vector type class definition is moved to the D.V.F.Cont module.
- Indexing function restored.
unfoldradded.
0.2.0.0 [2013-02-10]
- Continuation-based vector added.
- Right fold added.
- tailWith, convertContinuation, and ! from Data.Vector.Fixed removed.
- Vector instance for tuples added.
0.1.2 [2013-01-26]
- imap, imapM, ifoldl, ifoldM, zipWithM, izipWithM functions are added.
- VectorN type class added.
0.1.1 [2012-11-29]
- foldM and tailWith added. Type synonyms for numbers up to 6 are added. Fun is reexported from Data.Vector.Fixed.