On Thu, Jan 5, 2012 at 10:54 AM, Christoph Breitkopf <[email protected]> wrote: > Hello, > > I'm trying to figure out how to handle versioning of my IntervalMap > package. I've just read the package versioning > policy: http://www.haskell.org/haskellwiki/Package_versioning_policy > > I don't quite understand all the recommendations in the above document, > though: > > a) You are not allowed to remove or change the types of existing stuff. Ok. > > b) You are allowed to add new functions. But that can break compilation > because of name conflicts. Seems to be allowed on the grounds that this is > easy to fix in the client code.
This will never break clients who are using qualified imports, or only importing the symbols they use, which is strongly recommended behavior. > > c) You are not allowed to add new instances. I don't get this - how is this > any worse than b)? Unlike adding functions, there is no way for a client of your library to control which instances they import. Antoine > > I do understand that it is not generally possible to prevent breaking code > - for example if the client code depends on buggy behavior that gets fixed > in a minor version update. That seems unavoidable - after all, bugfixes are > _the_ reason for minor updates. > > Regards, > > Chris > > _______________________________________________ > Haskell-Cafe mailing list > [email protected] > http://www.haskell.org/mailman/listinfo/haskell-cafe > _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
