# semialign-extras

[](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.