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

Reply via email to