Ryan Ingram wrote:
My proposal is to allow "ad-hoc" overloading of names; if a name is
ambiguous in a scope, attempt to type-check the expression against
each name.  It is only an error if type-checking against all names
fails.  If type-checking succeeds for more than one then the
expression is ambiguous and this is also an error.

Pros: shorter code, less busywork to please the compiler
Cons: potentially exponential compile time?

Any thoughts?

Now try importing something like Data.Map where almost every single function name clashes with the Prelude. If I write

 foo x = map (bar x)

then unless there are some explicit type signatures somewhere, the poor compiler has no way of knowing whether this function is mapping over a list or a Map.

(Arguably you might wish to write a function that does both. This quickly boils down to an argument along the lines of "Haskell doesn't support container neutrality very well", which as I understand it is already a known problem.)

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

Reply via email to