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