I was discussing with someone the following situation:
I create a new feature or fix a bug in a library;
I don’t think this is a breaking change, and I increment the package version accordingly;
I release the new version;
Users report that my new feature / bug fix WAS, in fact, a breaking change. Oops!
Does anyone here know of a tool that could compare two Haskell module interfaces, and check whether one is a breaking change from another? This could be used to:
Suggest version numbers by e.g. cabal;
Refuse breaking changes without appropriate versioning by Hackage