Hello,<div><br></div><div>I&#39;m trying to figure out how to handle versioning of my IntervalMap package. I&#39;ve just read the package versioning policy: <a href="http://www.haskell.org/haskellwiki/Package_versioning_policy">http://www.haskell.org/haskellwiki/Package_versioning_policy</a></div>
<div><br></div><div>I don&#39;t quite understand all the recommendations in the above document, though:</div><div><br></div><div>a) You are not allowed to remove or change the types of existing stuff. Ok.</div><div><br></div>
<div>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.</div><div><br></div><div>c) You are not allowed to add new instances. I don&#39;t get this - how is this any worse than b)?</div>
<div><br></div><div><div>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.</div>
</div><div><br></div><div>Regards,</div><div><br></div><div>Chris</div>