comfort-array-0.0.1.1: comfort-array.cabal
Name: comfort-array
Version: 0.0.1.1
License: BSD3
License-File: LICENSE
Author: Henning Thielemann <haskell@henning-thielemann.de>
Maintainer: Henning Thielemann <haskell@henning-thielemann.de>
Homepage: http://hub.darcs.net/thielema/comfort-array/
Category: Data Structures
Synopsis: Arrays where the index type is a function of the shape type
Description:
Arrays from the basic @array@ package are already very powerful
compared with arrays in other languages.
It provides arrays of any dimension in a type safe and uniform way
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:
.
* @Range@:
Allow dynamic choice of lower and upper array bounds
such as in the 'Array's from the @array@ package.
You can combine it with other shapes in other dimensions.
It allows you to describe the bounds of each dimension individually.
.
* @Shifted@:
Describe array bounds by start index and length.
It is sometimes more natural to use these parameters.
E.g. a non-negative index type like 'Word' cannot represent @-1@
and thus cannot encode an empty range starting with index @0@.
.
* @Square@:
An 2D array where both dimensions always have equal size.
.
* @ZeroBased, OneBased@:
Arrays with fixed lower bound, either 0 or 1, respectively.
.
* Arrays with indices like 'LT', 'EQ', 'GT' and dummy shape.
Tested-With: GHC==7.4.2, GHC==7.8.4, GHC==8.2.2
Cabal-Version: >=1.6
Build-Type: Simple
Source-Repository this
Tag: 0.0.1.1
Type: darcs
Location: http://hub.darcs.net/thielema/comfort-array/
Source-Repository head
Type: darcs
Location: http://hub.darcs.net/thielema/comfort-array/
Library
Build-Depends:
utility-ht >=0.0.10 && <0.1,
base >=4.5 && <5
GHC-Options: -Wall
Hs-Source-Dirs: src
Exposed-Modules:
Data.Array.Comfort.Shape
Data.Array.Comfort.Storable
Data.Array.Comfort.Storable.Internal