@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...