On Wed, 6 Oct 1999, Simon Peyton-Jones wrote:

> Kevin writes:
> 
> | I strongly agree that Haskell can become a *much* more 
> | powerful language
> | with out losing any of clean syntax or semantics.  However, 
> | when ever I
> | bring up limitations of Haskell type system on this list I either get
> | ignorance or resistance.
> 
> I strongly agree that Haskell could be better.  But it is not easy
> to come up with clean designs for the sort of extensions you would like.
> - True ad-doc polymorphism
> - Built in dynamic typing system.
> - State Encapsulation
> - A solution to the abilities arising from multi parameter type classes.
> - Syntactic sugar for supporting OO programming styles
> 
> It is easier to identify the problem, that to identify a solution.
> It is easier to identify a solution than to describe that solution 
>       completely and precisely.
> It is easier to describe the solution precisely than to implement it.
> 
> I think some of the resistance Kevin feels may have something of
> the flavour of "lets wait to find a good solution, rather than 
> whip up a half-baked one".

What happens is that those few who think it is a good idea post one or
two messages expression they view points and perhaps giving a URL to
work they've done on the subject but don't really participate in the
discussion.  Meanwhile about a dozen other people post messages of why in
printable the idea is bad.  They don't say its a good idea but has
problems, they say how Haskell doesn't need it and they are happy with
the way things are.  So I reply to those dozen people and half the
time make a fool out of my self because I only half know what I am
taking about.  Thus because I received so much negative feedback I get
the impression that the Haskell community just doesn't *want* that
feature--even if those high up think is a good idea.

> Dynamic types is a good example.  There is a large design space of
> possible solutions, and it's not clear (to me) which is best.  I don't
> think any consensus has emerged.  
> 
> Ad hoc polymorphism is another good example.  Carlos's System CT
> goes a way towards a fairly fully-described solution; Mercury implements
> another variant.  I don't know how the two compare.  It is controversial
> whether the interaction of ad-hoc polymorphism with type-class overloading
> makes the whole thing unmanageably complex.

I think it would be in Carlos interest to modify Marks sample
implantation of the type system to support this.  Then we can really
see if his system will indeed work with the rest of Haskell.

> On the MPTC issues, a good solution does indeed seem to be emerging,
> as Mark mentions.

Yes it does, and because of this I am going to take another shot at my
abstraction library.  With Mark's solution I should not one into any
of the major barriers I did before.

> None of this is to say that dynamic types or ad-hoc polymorphism
> is a bad thing.  But I think it's a misconception to interpret the
> feedback Kevin has received as closed-mindedness. It's just a lot of work
> to work out to describe and implement these sort of extensions; even
> laying aside the expressiveness vs simplicity tradeoff, which itself
> is a real issue.
> 
> What can be done to hurry the process along?  One constructive thing
> would be for enthusiasts for a particular extension to move towards
> complete, precise descriptions of what they would like; and to 
> implement the feature in Mark's type checker (the one he's just released).
> Doing this doesn't guarantee that a feature will make it into Haskell,
> but it does make it more likely.  The way to guarantee that a feature
> will make it into a particular compiler is to implement it.  Both Hugs
> and GHC are open source, and work from a CVS repository you can get to
> over the network.
> 
> Haskell belongs to you. (Sound of violins.)

Thanks for some feedback from someone who doesn't think I want to
undermine Haskell.

---
Kevin Atkinson
[EMAIL PROTECTED]
http://metalab.unc.edu/kevina/




Reply via email to