John Meacham wrote:
On Mon, Jul 27, 2009 at 04:41:37PM -0400, John Dorsey wrote:

I'm assuming that name resolution is currently independent of type
inference, and will happen before type inference.  With the proposal this is
no longer true, and in general some partial type inference will have to
happen before conflicting unqualified names are resolved.

My worry is that the proposal will require a compliant compiler to
interweave name resolution and type inference iteratively.


Indeed. This is my concern too. I can't see any way to do implement it
in jhc at least without some major hassle. Name Resolution occurs
several stages before typechecking, even before desugaring, having to
intertwine it with type checking would be a complicated affair to say
the least.

You can still resolve the names first, while keeping the ambiguity:

    data Expr = ...
              | OverloadedVar [UniqueId] -- after name resolution

Then the type checker checks all possible overloads, and in the end only one variable reference is left.

TDNR would still complicate the typechecker, since it suddenly needs to do backtracking.


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

Reply via email to