> On 7 Jun 2016, at 7:02 am, Dominick Samperi <djsamperi@gmail.com> wrote:
>
> Why would a package developer want to upper bound the version number
> for packages like base? For example, the clash package requires
>
> base >= 4.2 && base <= 4.3
I put an upper bound on all my libraries as a proxy for the GHC version. Each time a new GHC version is released sometimes my libraries work with it and sometimes not. I remember a “burning bridges” event in recent history, when the definition of the Monad class changed and broke a lot of things.
Suppose you maintain a library that is used by a lot of first year uni students (like gloss). Suppose the next GHC version comes around and your library hasn’t been updated yet because you’re waiting on some dependencies to get fixed before you can release your own. Do you want your students to get a “cannot install on this version” error, or some confusing build error which they don’t understand?