comfort-array: Arrays where the index type is a function of the shape type

[ bsd3, data-structures, library ] [ Propose Tags ]

Arrays from the basic array package are already very powerful compared with arrays in other languages. They may have any number of dimensions, are type safe and defined in a uniform way using the Ix class with free choice of the lower bounds (0, 1, or whatever you like).

This package goes one step further: The shape and the index type are different, but the index type is a type function of the shape type. This offers much more flexibility and type safety.

Some examples are:

The lapack package defines even more fancy shapes like tall rectangular matrices, triangular matrices and banded matrices.

Versions [faq] 0.0, 0.0.1, 0.0.1.1, 0.1, 0.1.1, 0.1.2, 0.2, 0.3, 0.3.1, 0.4 (info)
Change log Changes.md
Dependencies base (>=4.5 && <5), containers (>=0.4 && <0.7), deepseq (>=1.3 && <1.5), guarded-allocation (>=0.0.1 && <0.1), non-empty (>=0.3.2 && <0.4), prelude-compat (==0.0.*), primitive (>=0.6.4 && <0.8), QuickCheck (==2.*), semigroups (>=0.18.3 && <1.0), storable-record (>=0.0.1 && <0.1), tagged (>=0.7 && <0.9), transformers (>=0.3 && <0.6), utility-ht (>=0.0.10 && <0.1) [details]
License BSD-3-Clause
Author Henning Thielemann <haskell@henning-thielemann.de>
Maintainer Henning Thielemann <haskell@henning-thielemann.de>
Category Data Structures
Home page http://hub.darcs.net/thielema/comfort-array/
Source repo this: darcs get http://hub.darcs.net/thielema/comfort-array/ --tag 0.4
head: darcs get http://hub.darcs.net/thielema/comfort-array/
Uploaded by HenningThielemann at Thu May 23 20:30:55 UTC 2019
Distributions NixOS:0.4, Stackage:0.4
Downloads 2032 total (226 in the last 30 days)
Rating 2.0 (votes: 1) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs available [build log]
Last success reported on 2019-05-23 [all 1 reports]

Modules

[Index] [Quick Jump]

Flags

NameDescriptionDefaultType
setindex

Use efficient Set indexing from containers>=0.5.4

EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info

Downloads

Maintainer's Corner

For package maintainers and hackage trustees