Open rlaemmel opened 11 years ago
The Package Versioning Policy pretty neatly defines breaking and non-breaking package API changes. There also is a more in-depth article called Eternal Compatibility in Theory. It is unclear how the nowadays more and more common data and type families fit into this picture. One attempt to visualize API changes between package versions is the precis package.
We want to measure interface changes. So we need a really simple definition of "interface", simple in the sense of its definition. It will not be precise initially. That is, it may not cater for all expressiveness of the module system. This can be extended later :-)