[Haskell-cafe] (no subject)
aslatter at gmail.com
Thu Jan 5 19:36:52 CET 2012
On Thu, Jan 5, 2012 at 10:54 AM, Christoph Breitkopf
<chbreitkopf at googlemail.com> wrote:
> 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,
> 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
> 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.
> 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.
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe