[Haskell-cafe] Eq Type Class: Overloading (==)

Tom Hawkins tom at confluent.org
Sun Sep 18 07:59:51 EDT 2005


Aaron Denney wrote:
> On 2005-09-17, Jason Dagit <dagit at eecs.oregonstate.edu> wrote:
> 
>>
>>A link to supertyping can be found here:
>>http://repetae.net/john/recent/out/supertyping.html
>>
>>After reading that, I wonder why it's not implemented.
> 
> 
> Not enough people calling for it.
> 
> 
>>It seems like a wonderfully useful idea.
> 
> 
> It is.  It would be terribly useful for those trying to prototype a
> new Prelude, and clean up the mathematical structures.
> 

I like the idea of supertyping, but wouldn't that only allow you to 
alter identifiers that were already classified?  What about functions in 
the Prelude that don't belong to a type class?

For instance, I have a datatype that needs an append-like operation, yet 
it appears (++) is reserved only for lists.

I recently switched to Haskell from OCaml because I thought type classes 
may solve one of my problems.  I'm building an embedded language, which 
has a lot of the basic operations.  In OCaml I was forced to invent all 
sort of obscure operator names for the embedded language so as not to 
collide with the standard library.

But with Haskell's Num class, I have been able to reuse (+), (-), and 
(*).  However, (==) and (++) are still sticking points.  My general 
impression of Haskell is good, though it seems you're somewhat locked-in 
by how the upper levels of the class hierarchy are defined in the 
Prelude, or when the Prelude does not type class generic operator names 
such as (++).

Again, I just stared programming Haskell.  Please let me know if I'm 
missing something.

Thanks!

-Tom




More information about the Haskell-Cafe mailing list