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

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 provide. Best, -- Jack [1]: http://hackage.haskell.org/package/semialign-extras-0.1.0.0 [2]: https://github.com/qfpl/semialign-extras [3]: https://hackage.haskell.org/package/containers-0.6.0.1/docs/Data-Map-Merge-Lazy.html [4]: https://github.com/qfpl/semialign-extras/issues/3