mappings-0.0.1.0: README.md
# Mappings
## What's it do?
This package does two jobs:
* It offers a general typeclass [`Mapping`](src/Data/Mapping.hs) for
types which represent functions `k -> v` (for fixed `k`, but
arbitrary ordered `v`).
There are some fairly straightforward examples which build up
mappings where `k` is `Either`, or a pair, or `Maybe`, or `Bool`.
* Three less trivial implementations are provided:
* [Decision diagrams](src/Data/Mapping/Decision.hs), with nodes
which may themselves be an arbitrary `Mapping` (there is some
code for viewing these in the `examples` directory);
* [Piecewise constant maps](src/Data/Mapping/Piecewise.hs) on an
ordered domain `k`;
* [Maps equipped with a default value](src/Data/Mapping/MapWithDefault.hs).
## Why did I bother?
The aim is to use decision diagrams with nodes that are piecewise
constant maps to store monomials for Grobner basis algorithms.