packages feed

comfort-array-0.5: Changes.md

# Change log for the `comfort-array` package

## 0.5

 * `Array.Boxed`.`map`, `zipWith`, `toList`: make lazy

 * add `unified` methods to `Shape` classes:
   `unifiedSize`, `unifiedOffset`, `unifiedSizeOffset`,
   `uncheckedIndexFromOffset`.
   They simplify to share code between checked and unchecked variants.
   Actually, many implementations of these methods
   recursively call themselves on part shapes.
   However, the default methods have changed.

 * `Shape.:+:` -> `Shape.::+`.
   This resolves the name clash with the `:+:` operator from `tfp`.
   It also highlights the right associativity and non-commutativity.

 * `Shape.Simplex`

## 0.4.1

 * use `doctest-extract` for tests

 * `instance Shape Map`

 * `Shape.Cyclic`

 * `Shape.Square`, `Shape.Cube`

## 0.4

 * `fromAssocations`: Make default value the first parameter.
   It is most oftenly zero and thus less variable than the array size.

 * `Shape.DeferredIndex`:
   Now uses the shape as the type parameter, not the index type.

## 0.3

 * `Storable.Mutable.Array`: Replace `ForeignPtr` by `Array.Guarded.MutablePtr`.
   In the last release we altered the arrays after initialization
   which corrupted the debugging by the `guarded-allocation` package.
   This should be fixed now.

 * `Shape.sizeOffset`: It does not return a single offset anymore
   but an offset computation function.
   This allows to cache a size computation across many offset computations.

## 0.2

 * Add a monad parameter to the mutable `Storable` array type
   and generalize functions to `PrimMonad`s.
   This way the mutating functions can also be used in the `ST` monad.

## 0.1.2

 * Add immutable `Boxed` array type and mutable `Storable` array type.

## 0.1

 * Split `Shape.C` into `Shape.C` and `Shape.Indexed`.

## 0.0

 * Initial version featuring the `Shape.C` class with type function `Index`
   and the immutable `Storable` array type.