
hello, Simon Marlow wrote:
No - we don't want globally-unique module names (that's what we were trying to solve in the first place). We therefore do want local grafting. globally unique module names and globally unique package names seem to be very similar problems. i thought the problem we were trying to solve was how to present ugly modules names nicely in a (source) program (this is what i understood from simon pj's explanatory email a couple of days ago, although he didn't use those exact words). what i mean is:
if we have unique package names, then we have unique modules names: module A.B in a package P, has the unique name P.A.B. the problem as i understood it, was that package names might be kind of ugly, and change relatively often (e.g. with new releases, even minor ones). so i think simon & simon were suggesting a way to _distribute_ package source code that might avoid that. the source code distributed is "incomplete", as the module names contain "holes" to be filled in when the package is installed. i think "grafting" refers to filling in the holes. so i think if we really wanted it, we _could_ think of this as not being a language extension. having said that, it seems to me that we would always be writing this "incomplete" haskell (as we always refer to modules by their "grafted" names, and not by their real names) and never really see the "real" program. so we have basically extended the language, because after all haskell is what is in the source files. bye iavor -- ================================================== | Iavor S. Diatchki, Ph.D. student | | Department of Computer Science and Engineering | | School of OGI at OHSU | | http://www.cse.ogi.edu/~diatchki | ==================================================