fixed-vector
Generic vectors with statically known size.
| Version on this page: | 1.2.0.0 | 
| LTS Haskell 24.17: | 2.0.0.0 | 
| Stackage Nightly 2025-10-31: | 2.0.0.0 | 
| Latest on Hackage: | 2.0.0.0 | 
fixed-vector-1.2.0.0@sha256:18915b2653b10b87348ec7a479667ba029ca92014bbe373fcb96f5e5cb9791d7,2497Module documentation for 1.2.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 aTuples are vectors too:
sum (1,2,3)6Vectors 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
Changes in 1.2.0.0
- Showinstance for data type now respect precedence.
Changes in 1.1.0.0
- GHC8.4 compatibility release. Semigroup instances added and semigroup dependency added for GHC7.10
Changes in 1.0.0.0
- 
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.
Changes in 0.9.0.0
- 
Simplification of Aritytype class. This change shouldn’t affect client code.
- 
Support for GHC < 7.8 is droppped. 
- 
Fixed bug in any.
Changes in 0.8.1.0
- findfunction added.
Changes in 0.8.0.0
- 
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. 
Changes in 0.7.0.3
- GHC 7.10 support
Changes in 0.7.0.0
- 
Type level addition for unary numbers added 
- 
concatfunction added
- 
More consistent naming for functions for working with Fun
Changes in 0.6.4.0
- Isomorphism between Peano numbers and Nat added. (GHC >= 7.8)
Changes in 0.6.3.1
- Documentation fixes.
Changes in 0.6.3.0
- Left scans added.
Changes in 0.6.2.0
- 
Vec1type synonym for boxed/unboxed/etc. vectors added.
- 
Vector instance for Data.Typeable.Proxy (GHC >= 7.8) 
Changes in 0.6.1.1
- GHC 7.8 support
Changes in 0.6.1.0
- distribute- collectand their monadic variants added.
Changes in 0.6.0.0
- 
Data instance for all array-based vectors added. 
- 
Storable instance added for Storable.Vec.
- 
Monoid instances added for all vectors. 
Changes in 0.5.1.0
- Zero-element vector Empty'is added.
Changes in 0.5.0.0
- 
ContVecnow behaves like normal vector.Aritytype class is reworked. `Id’ data 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. 
Changes in 0.4.4.0
- Functor and Applicative instances are added to Id.
Changes in 0.4.3.0
- Typeable instance for S and Z added.
Changes in 0.4.2.0
- 
1-tuple Onlyadded.
- 
fromList'and fromListM added.
- 
apply functions from Arity type class generalized. 
Changes in 0.4.1.0
- 
consfunction added.
- 
Getter for Fundata type added.
Changes in 0.4.0.0
- 
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 
Changes in 0.3.0.0
- 
Vector type class definition is moved to the D.V.F.Cont module. 
- 
Indexing function restored. 
- 
unfoldradded.
Changes in 0.2.0.0
- 
Continuation-based vector added. 
- 
Right fold added. 
- 
tailWith, convertContinuation, and ! from Data.Vector.Fixed removed. 
- 
Vector instance for tuples added. 
Changes in 0.1.2
- 
imap, imapM, ifoldl, ifoldM, zipWithM, izipWithM functions are added. 
- 
VectorN type class added. 
Changes in 0.1.1
- foldM and tailWith added. Type synonyms for numbers up to 6 are added. Fun is reexported from Data.Vector.Fixed.
