Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!usc!elroy.jpl.nasa.gov!ames!haven!ni.umd.edu!uc780.umd.edu!cs450a03 From: cs450a03@uc780.umd.edu Newsgroups: comp.lang.misc Subject: RE: Limitations of ML type inference Message-ID: <24MAR91.14580761@uc780.umd.edu> Date: 24 Mar 91 14:58:07 GMT References: <602@optima.cs.arizona.edu> <2400034@otter.hpl.hp.com> <8082@skye.cs.ed.ac.uk> Sender: usenet@ni.umd.edu (USENET News System) Organization: The University of Maryland University College Lines: 23 Nntp-Posting-Host: uc780.umd.edu Dave Berry writes: >An early approach to typing polymorphic references would have allowed the >declaration, refining the type from the polymorphic list to an integer >list at the first assignment. This proved to be unwieldy in practice, >since the first assignment to a reference could be some distance from >the initial declaration, and this made code hard to read. One of the things I've been trying to point out is that type is a property of data as much as it is of name (currently, I believe that type is more data than name). A related argument might be that it is a property of assignment. The way I interpret what Dave's comment is: Somebody allowed assignment of a (constant) type to a name, which had implications on all later assignments to that name. To me, this is an old, familiar stylistic problem (nonlocality). Personally, I favor aiding "type inference" by providing (possibly trivial) functions which guarantee results of a certain type. If you like, this could be extended to meta-functions and meta-types (but meta-meta-* is silly). Raul Rockwell