Name: comfort-array Version: 0.2 License: BSD3 License-File: LICENSE Author: Henning Thielemann Maintainer: Henning Thielemann 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. 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: . * @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. . * @(:+:)@: The Append type constructor allows to respresent block arrays, e.g. block matrices. . * Arrays with indices like 'LT', 'EQ', 'GT' and dummy shape. . The @lapack@ package defines even more fancy shapes like tall rectangular matrices, triangular matrices and banded matrices. Tested-With: GHC==7.4.2, GHC==7.8.4, GHC==8.2.2 Cabal-Version: 1.14 Build-Type: Simple Extra-Source-Files: Changes.md Source-Repository this Tag: 0.2 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: primitive >=0.6.4 && <0.7, guarded-allocation >=0.0 && <0.1, storable-record >=0.0.1 && <0.1, deepseq >=1.3 && <1.5, QuickCheck >=2 && <3, transformers >=0.3 && <0.6, non-empty >=0.3 && <0.4, utility-ht >=0.0.10 && <0.1, base >=4.5 && <5 GHC-Options: -Wall Default-Language: Haskell98 Hs-Source-Dirs: src Exposed-Modules: Data.Array.Comfort.Shape Data.Array.Comfort.Shape.Test Data.Array.Comfort.Storable Data.Array.Comfort.Storable.Internal Data.Array.Comfort.Storable.Internal.Monadic Data.Array.Comfort.Storable.Private Data.Array.Comfort.Storable.Mutable Data.Array.Comfort.Storable.Mutable.Internal Data.Array.Comfort.Storable.Mutable.Private Data.Array.Comfort.Boxed Other-Modules: Data.Array.Comfort.Boxed.Internal Test-Suite comfort-array-test Type: exitcode-stdio-1.0 Build-Depends: comfort-array, QuickCheck, base GHC-Options: -Wall Default-Language: Haskell98 Hs-Source-Dirs: test Main-Is: Main.hs Other-Modules: Test.Shape Test.Utility