packages feed

semialign-extras-0.1.0.0: README.md

# semialign-extras

![Data61 Logo](https://raw.githubusercontent.com/qfpl/assets/master/data61-transparent-bg.png)

[![Build Status](https://travis-ci.org/qfpl/semialign-extras.svg?branch=master)](https://travis-ci.org/qfpl/semialign-extras)

The `Semialign` typeclass (from
[`semialign`](https://hackage.haskell.org/package/semialign)) lets us
line up two structures of the same type. By combining this with the
`Filterable` and `Witherable` typeclasses from the
[`witherable`](https://hackage.haskell.org/package/witherable)
package, we can derive a number of useful diff/patch/merge-style
operations.

## Scope of the Library

`semialign-extras` aims to be a collection of interesting
abstractions/operations that:

1. Build on top of (at least) the `Semialign` typeclass, or related
   classes from the `semialign` universe; and

2. Do not belong inside other packages in the `semialign` universe.

PRs that serve these goals are most welcome.

### Rationale

`semialign` has a very lean dependency footprint, and its authors
intend to keep it that way. If your PR can work within the small
dependency footprint of `semialign`, it probably should be offered up
there first.

`semialign-extras` already depends on `lens`, so the marginal cost of
additional dependencies is likely to be small.