@TOTBWF and I had a mini hackathon last weekend and this is the results. It provides case splitting, homomorphic case splitting[^1], and lambda introduction. It does a reasonable job of coming up with good names, and implements a lot of general-purpose machinery for other plugins.
[^1] Case splitting to the same datacons --- useful for writing things like functor instances.
It looks like this:
Fixes #323 --- although that usecase could be improved with a separate action that flattens foo = \x y z -> bar...
Before submitting your PR, check that you've:
Documented new APIs with Haddock markup
Added @since declarations to the Haddock
After submitting your PR:
Update the Changelog.md file with a link to your PR
Bumped the version number if there isn't an (unreleased) on the Changelog
Check that CI passes (or if it fails, for reasons unrelated to your change, like CI timeouts)