Making decisions

Casey McCann cam at uptoisomorphism.net
Thu May 23 16:39:05 CEST 2013


Regarding the matter of consensus, do note that the general opinion
was something like an 85% supermajority in favor, which is far beyond
what most democratic governing bodies require even for drastic
actions--I really don't think that starting World War III should
require less of a group consensus than modifying the Prelude. Any
non-trivial change to core libraries is sure to provoke some amount of
opposition, so in practice this is about as clear a consensus as can
be expected.

However, as was pointed out on IRC, this is not a democratic process
and the decision lies ultimately with the maintainer. While the
maintainer may certainly take community feedback into account, in a
largely unstructured format such as a mailing list it's easy for
extended debate to create the appearance of significant disagreement
where none really exists.

With ideas like the current Foldable/Traversable suggestion there is a
great deal of work that would need to be done before reaching the
point of having a complete, clear, and fully-detailed proposal:
Exactly which combinators are to be generalized, whether any
monomorphic versions should exist outside of Prelude, what situations
(if any) may cause ambiguious types that break existing code, whether
any functions are unavoiably less efficient when generalized, if there
need to be rewrite rules to improve performance, how this impacts list
foldr/build fusion, and probably a variety of other implementation
details on top of that. While this change doesn't intrinsically
require breaking anything, in practice it surely won't be that easy.

Ideally someone would write up a better overview of these concerns--a
task which Shachaf has selflessly volunteered to delegate to me, and
I'll do so if necessary--but the process of working out the answers to
those questions should have broader community involvement, which is
difficult to accomplish in the presence of infinitely persistent
arguments about whether the change should happen at all.

To make headway on larger changes while retaining community
involvement, what I think is necessary is an authority capable of
listening to the community, making a *clear decision on whether to
proceed or not*, and then organizing the process of investigating and
resolving any implementation details.

So that's what I'd like to see from a Core Library Bikeshed Decoration
Committee or whatever it ends up being called: Find out whether a
change is desired by the community, if so determine whether that
change is feasible, and if so drive the process to implement it.

And anyhow, GHC itself is certainly no less critical than the core
libraries. Anything that reduces the amount of non-GHC burdens for GHC
HQ to deal with is a win for everyone, I would expect.

- C.



More information about the Libraries mailing list