qualified imports, PVP and so on (Was: add new Data.Bits.Bits(bitZero) method)

Michael Snoyman michael at snoyman.com
Wed Feb 26 12:05:05 UTC 2014

On Wed, Feb 26, 2014 at 1:47 PM, Alain O'Dea <alain.odea at gmail.com> wrote:

> On Feb 26, 2014, at 7:11, Michael Snoyman <michael at snoyman.com> wrote:
> I disagree with that assertion. I get plenty of complaints from users
> about trying to install packages and getting "confusing error messages"
> about cabal plan mismatches. I don't disagree that the PVP does make the
> user experience better in some cases. What I disagree with is the
> implication that it makes the user experience better in *all* cases. This
> is simply not a black-and-white issue.
> Michael
> This is not a new problem.
> Java users faced it with Maven and it was solved by curation of Maven
> Central and the ability to add outside repositories as needed.
> Node.js users faced it with NPM and solved it with dependency freezing.
> Ruby users faced it with Gem and solved it with dependency freezing.
You've presented three examples of other languages solving the problems
using the two techniques I've been advocating through this thread: curation
and dependency freezing. Is there an example of a language that took an
approach like the PVP and succeeded in solving it?

> I imagine there are a world of different solutions to this problem.  The
> PVP isn't a complete solution, but I consider it to be a sensible baseline
> (like code style conventions and warning free builds) and it appears to me
> to be in line with best practices from packaging systems of many other
> languages.
> What follows is my opinion, and it comes from a position of relative
> inexperience with Haskell and considerable experience operating on other
> language communities.
> I feel that the PVP should be encouraged and violations should be
> considered bugs. Users and concerned community members should report them
> to maintainers.

Please, please, please don't actually encourage this. There are many things
which I consider bad practice in Haskell code. I don't open up bug reports
against each package that disagrees with me. If a package on Hackage in
fact does *not* build with some dependency it claims to build against,
that's a perfectly reasonable thing to report (and I do so on a regular
basis via Stackage). But insisting that people add upper bounds when
they've clearly stated they do not want to is crossing the line.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/libraries/attachments/20140226/e998aac7/attachment.html>

More information about the Libraries mailing list