Libraries and hierarchies

Iavor Diatchki
Fri, 08 Aug 2003 16:57:59 +0000


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.


| Iavor S. Diatchki, Ph.D. student               |
| Department of Computer Science and Engineering |
| School of OGI at OHSU                          |
|               |