On 8/15/11 7:44 AM, Conor McBride wrote:
On 15 Aug 2011, at 11:36, Simon Peyton-Jones wrote:
But, concerning proposed extensions to GHC about class
aliases/superclass defaults etc, the truth is that the biggest reason
for inertia here at GHC HQ is not so much the implementation effort
(athough that is always an issue). Rather, it's uncertainty about
(a) Is there a reasonably large group of users who really want such a
change? Or is it just "nice to have"?
(b) What is the "right" design?
(c) Does it pay its way? (ie do the programming benefits justify the
cost in terms of both language complexity and ongoing maintenance
burden of one more feature to bear in mind when changing anything)
[...]
One thing that's really noticeable and sad about the status quo is that
we can't refine the structure of a bunch of related classes without
breaking established interfaces. I guess an interesting question might
be what progress is effectively being blocked by our current inability
to engineer around this problem. What are we stuck with just now?
Right. IMO, this concern deserves to be added to the three that Simon
mentioned. In particular, I think this is more to the point than (a),
though clearly in the same spirit.
We've known that the monadic and numeric towers have been in need of
refinement for quite some time, but the status quo actively impedes
resolving the issues with the current design. While the numeric-prelude,
yap, and other packages have made a go at setting up new hierarchies,
the status quo essentially forces people to buy into a single hierarchy
for all their work because intercompatibility is just too hard. Due to
package dependencies, this amounts to sending Haskell down the route of
Lisp dialects, which adds additional compatibility problems to the
original class hierarchy issues. Thus, the age-old response that people
can set up their own class hierarchies has been shown not to work in
practice.
To my mind, this means that Simon's (a) or my/Conor's (a') is resolved
with certainty. The remaining issues are the uncertainty with (b) and
(c). Naturally the answer to (c) is going to depend on the design given
in (b). So I suppose I ought to read the wiki page about the current
proposal :)
--
Live well,
~wren
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users