Copyright | (C) 2012-16 Edward Kmett |
---|---|

License | BSD-style (see the file LICENSE) |

Maintainer | Edward Kmett <ekmett@gmail.com> |

Stability | provisional |

Portability | MPTCs, Rank2Types, LiberalTypeSynonyms |

Safe Haskell | Safe |

Language | Haskell98 |

## Synopsis

- ixmapped :: (IArray a e, Ix i, Ix j) => (i, i) -> IndexPreservingSetter (a j e) (a i e) i j

# Setters

ixmapped :: (IArray a e, Ix i, Ix j) => (i, i) -> IndexPreservingSetter (a j e) (a i e) i j #

This `setter`

can be used to derive a new `IArray`

from an old `IAarray`

by
applying a function to each of the indices to look it up in the old `IArray`

.

This is a *contravariant* `ReifiedSetter`

.

`ixmap`

≡`over`

`.`

`ixmapped`

`ixmapped`

≡`setting`

`.`

`ixmap`

`over`

(`ixmapped`

b) f arr`!`

i ≡ arr`!`

f i`bounds`

(`over`

(`ixmapped`

b) f arr) ≡ b