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 not > > have the same package name or version. > > > This is certainly a valid transformation for Data.Unique, I am simply > > 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 http://www.cse.unsw.edu.au/~dons/hs-plugins/hs-plugins-Z-H-5.html#node_s ec_9 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. Ganesh ============================================================================== Please access the attached hyperlink for an important electronic communications disclaimer: http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html ============================================================================== _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
