semialign-extras: Extra functions for working with Semialigns

[ bsd3, data, library ] [ Propose Tags ]

The Semialign typeclass lets us line up two structures of the same type. By combining this with the classes from the "witherable" package, we can derive a number of useful diff / patch / merge-style operations.

[Skip to Readme]
Versions [faq]
Change log
Dependencies base (>=4.8 && <4.14), lens (>=2.5 && <4.19), semialign (>=1 && <1.2), semialign-indexed (>=1 && <1.2), these (>=1 && <1.1), witherable (>=0.2 && <0.4) [details]
License BSD-3-Clause
Copyright Copyright (c) 2019, Commonwealth Scientific and Industrial Research Organisation (CSIRO) ABN 41 687 119 230.
Author Jack Kelly
Revised Revision 1 made by jack at 2019-12-23T03:17:05Z
Category Data
Bug tracker
Source repo head: git clone
Uploaded by qfpl at 2019-11-15T00:22:57Z
Distributions NixOS:
Downloads 258 total (20 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Hackage Matrix CI
Docs uploaded by user
Build status unknown [no reports yet]


[Index] [Quick Jump]


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees

Readme for semialign-extras-

[back to package description]


Data61 Logo

Build Status

The Semialign typeclass (from semialign) lets us line up two structures of the same type. By combining this with the Filterable and Witherable typeclasses from the 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.


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.