Frank> Briefly, what is the difference between Damas-Milner and Hindley-Milner
    Frank> typing?  Are they different inferencing algorithms, or is it something like
    Frank> the notion of principal types is due to Damas and Milner whereas the
    Frank> inferencing algorithm itself is due to Hindley and Milner?

    Frank> It seems to me that I hear "Damas-Milner" mentioned more often in ML 
circles,
    Frank> but "Hindley-Milner" more often with regard to Haskell...

The type inference algorithm is already presented in Milner's paper
[Milner1978] along with a soundness proof.
Damas [DamasMilner1982] proved the completeness of the algorithm and
the fact that the algorithm computes principal types, i.e., suppose
the algorithm yields e : sigma. Then for each derivable typing
judgement  [] |- e : sigma' it holds that sigma' is a generic instance 
of sigma. 
Btw, some people also speak of Milner-Mycroft typing to mean ML-typing 
plus polymorphic recursion.

-Peter

@ARTICLE{Milner1978,
        AUTHOR = {Robin Milner},
        TITLE = {A Theory of Type Polymorphism in Programming},
        JOURNAL = jcss,
        YEAR = 1978,
        VOLUME = {17},
        PAGES = {348-375}
}
@INPROCEEDINGS{DamasMilner1982,
        CROSSREF = {POPL1982},
        AUTHOR = {Luis Damas and Robin Milner},
        TITLE = {Principal Type-Schemes for Functional Programs},
        YEAR = 1982,
        PAGES = {207-212}
}


Reply via email to