[Haskell-cafe] Proposal: TypeDirectedNameResolution

Ben Lippmeier Ben.Lippmeier at anu.edu.au
Wed Jul 29 06:55:22 EDT 2009

On 28/07/2009, at 6:41 AM, 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.
> To my untrained eye it looks complicated and invasive, even without  
> the
> mutually recursive case.  Can anyone shed light on whether this  
> would be a
> problem for, say, GHC?

My experimental compiler DDC [1] implements TDNR almost exactly as  
given on the Haskell' wiki.

Yes, you have to interweave name resolution with type inference,  
because there is no way to compute the binding dependency graph/call  
graph before type inference proper. This is discussed in section 3.5  
of my thesis [2] (which is currently under examination). For DDC I  
used a constraint based inference algorithm to compute the binding  
dependency graph "on the fly", but I don't know how easy it would be  
to retrofit this method into GHC.


[1] http://www.haskell.org/haskellwiki/DDC
[2] http://cs.anu.edu.au/people/Ben.Lippmeier/project/thesis/thesis-lippmeier-sub.pdf

More information about the Haskell-Cafe mailing list