[Haskell-cafe] ANN: semialign-extras-, and a request for help

Jack Kelly jack at jackkelly.name
Fri Nov 15 01:39:21 UTC 2019

I have just pushed an initial release of semialign-extras[1] to Hackage.

semialign-extras aims to collect 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, as are GitHub issues[2].

Currently, there are two modules:

* Data.Semialign.Diff has diffing/patching for Semialigns; and

* Data.Semialign.Merge has a collection of merge operations for
  Semialigns which are also Filterable/Traversable/Witherable

Request for help:

The functions in Data.Semialign.Diff work across a lot of types, but are
are often not the most efficient way to diff. There is a
high-performance merge API for Data.Map.Map in Data.Map.Merge.Lazy[3],
and it would be great to have some rewrite rules that took advantage of
this. I have been able to write rules that GHC accepts, but not make
them actually fire[4]. I'd be grateful for any assistance people can


-- Jack

[1]: http://hackage.haskell.org/package/semialign-extras-
[2]: https://github.com/qfpl/semialign-extras
[3]: https://hackage.haskell.org/package/containers-
[4]: https://github.com/qfpl/semialign-extras/issues/3

More information about the Haskell-Cafe mailing list