Malcolm Wallace wrote:
Unfortunately, I suspect that teaching is _the_ major use-case for
defaulting.  Imagine, day one, lesson one, a student types

    Prelude> 1+2

into Hugs, and gets the response

    Unresolved overloading: Num a

Huh?  This is lesson one, and you already need to tell students about
type classes and overloading, before you have even covered simple
expressions fully?  I am certain this is the reason why defaulting was
introduced.

I propose we abandon "teaching" arguments for design choices entirely. There are two reasons for this. Firstly, they don't apply to the majority of Haskell users, and secondly, they almost always misapprehend the language-learning process.

To give you a vague example, when I was learning ML, what appealed to me was the sense of cleanliness and purity about the language. Any apparent weirdness was fine, as long as I could discover the elegant reason behind it. This right up until finding out about references, which bothered me so much that I dropped it and learnt Haskell instead.

That something might confuse the beginning user should count for nothing if it does not annoy the more experienced user.

--
Ashley Yakeley

_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-prime

Reply via email to