Libraries and hierarchies

Ross Paterson
Fri, 8 Aug 2003 15:15:05 +0100

Would you mind illustrating the source-to-source transformation on
a small example?  Suppose there's a package foo with a module

	module C where f = 'a'

that this package is grafted in at both A.B and X, and there's a module

	module Foo (f) where
	import A.B.C (f)
	import X.C (f)

> Documentation is an important point.  We could have dynamic
> documentation that changes with the grafting (Haddock.cgi, anyone?), or
> we could use relative module names only in the documentation.  Or we
> could just continue to use the default module names.  In practice, I
> don't think using the default module names in the documentation will
> lead to many difficulties - most of the time, people aren't going to use
> any weird local graftings.  The Haddock documentation will probably
> including information about where the root of the package is for each
> module (it already contains the package name).

I also can't see much to gain from local graftings.  But that leaves us
wanting each combination of

	default root for package + local module name

unique across all packages, doesn't it?