[Haskell-cafe] RE: [Haskell] Top Level <-

Sittampalam, Ganesh ganesh.sittampalam at credit-suisse.com
Wed Sep 3 04:45:31 EDT 2008

Ashley Yakeley wrote:

> Sittampalam, Ganesh wrote:
> > I am suggesting that this duplication process, whether conducted by 
> > the dynamic loader or something else, should behave as if they did
> > have the same package name or version.
> > This is certainly a valid transformation for Data.Unique, I am
> > saying that it should be a valid transformation on any module.

> So if I dynamically load module M that uses base, I will in fact
> get a completely new and incompatible version of Maybe, IO, [], 
> Bool, Char etc. in all the type-signatures of M?

I think it treats them as compatible, using the fact that 
Data.Typeable returns the same type reps (which was why I initially
mentioned Data.Typeable in this thread). This is fine for "normal"
modules. There's a bit of description in the "Dynamic Typing" section of

It's clearly the wrong thing to do for Data.Unique and any anything
else that might use <-; but if there are no such types in the interface
of the plugin, then it won't matter. I can't see how to make it
safe to pass Data.Unique etc across a plugin interface without
severely restricting the possible implementation strategies for
a plugin library and its host.


Please access the attached hyperlink for an important electronic communications disclaimer: 


More information about the Haskell-Cafe mailing list