Is it really so impossible to implement typeclasses in a way which
avoids this problem altogether? Perhaps the need for the MR in the
first place is simply an indication that dictionary passing is not a
complete solution to implementing typeclasses. It seems quite
plausible that there should be an implementation which preserves
polymorphism, and yet doesn't result in horrific inefficiency. Do we
have a proof (or at least strong evidence) that such a thing can't
exist?

I'm going to think about this some more. I really find a lot of these
solutions to be heavy handed, as you really want things to be
polymorphic by default, and let the programmer or various compiler
optimisations decide when they're only used monomorphically. A special
keyword for killing polymorphic binding might work, but what's so
wrong with just adding a type signature?

 - Cale

 -- sorry if anyone gets two copies of this, I thought I sent it, but
later received notification that it wasn't sent.
_______________________________________________
Haskell-prime mailing list
Haskell-prime@haskell.org
http://haskell.org/mailman/listinfo/haskell-prime

Reply via email to