Re: [Haskell-cafe] language proposal: ad-hoc overloading

Oops, forgot to send to list. On Mon, 2008-09-01 at 01:27 +0100, Philippa Cowderoy wrote:
On Mon, 2008-09-01 at 01:11 +0100, David House wrote:
2008/8/31 Ryan Ingram
: 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.
-1, at least for now.
Haskell already has one method of overloading: type classes. What you propose is a seemingly innocent extension that I now doubt has extremely far-reaching consequences into the language. Such a feature should be properly researched before it is added to the language. Here's an example of such a concern: you write the following:
import Data.Map foo = map
What is the type of `foo'?
If I've understood the proposal, that wouldn't check unless foo was used in a way (within the module) that makes it clear which of Prelude.map or Data.Map.map to use and uses it consistently. So if that's the entire module, it wouldn't check.
I'm still not keen, but in a sense the idea here is to avoid this variety of overloading leaking into the type system itself: it could be implemented (extremely naively) as "typecheck with each possible permutation for resolving the overloading, use any unique solution or fail if there isn't one".
--
Philippa Cowderoy

Philippa Cowderoy
Haskell already has one method of overloading: type classes. What you propose is a seemingly innocent extension that I now doubt has extremely far-reaching consequences into the language. Such a feature should be properly researched before it is added to the language.
http://homepages.dcc.ufmg.br/~camarao/CT/ -- Gracjan
participants (2)
-
Gracjan Polak
-
Philippa Cowderoy