The PVP ought to mention dependency bounds (Was: Growing Haskell Platform)

Simon Marlow marlowsd at gmail.com
Tue Dec 11 10:45:58 CET 2012


On 10/12/12 16:02, Johan Tibell wrote:
> On Sat, Dec 8, 2012 at 12:11 PM, Duncan Coutts
> <duncan.coutts at googlemail.com> wrote:
>> But yes it is true that the "real" API of a package is in the version
>> number of the package itself, and the versions of all the packages
>> which are "exposed" by that package (meaning packages that define
>> types that are mentioned in the api of the exposing package). But it
>> that has the property that I only notice changes in the types in those
>> dependencies if I also depend on them directly myself. So we can get
>> away with specifying local info, and not have to encode the full
>> transative info (I think).
>
> It's worse than that. The failure to build in my example above is a
> failure to find a valid install plan due to conflicting dependency
> ranges, not due to clashing symbols from different package versions.
> It happens even with private dependencies!

I'm a bit lost.  The example from your mail that started this thread 
*does* compile, because Cabal finds a valid install plan by avoiding the 
new version of B. It's working exactly as intended, isn't it?  Then you 
said that the user might get confused about why the new B wasn't being 
used, to which the response is that we need better diagnostics.

What's the problem you're getting at above?

Cheers,
	Simon




More information about the Libraries mailing list