
On 11 February 2005 02:19, John Meacham wrote:
There seems to have been a change in how packages are found which is biting me.
I have a module called PackedString, which used to be fine, as ghc's packedstring was called Data.PackedString. however with ghc 6.4 I am getting the error:
Atom.hs:3:0: Failed to load interface for `PackedString': Could not find module `PackedString': it is a member of package lang-1.0, which is hidden
If not using -package foo doesn't allow you to reuse the names in foo then I must wonder what the point is of hiding the package in the first place :)
GHC has warned you about a module clash, for which you should be grateful :-) This could have lead to strange link-time errors, or even crashes, if you had used a library module which depended on the other PackedString. The golden rule is (from the new section on packages in the GHC User's Guide): There must be no overlaps in the modules provided by all of the exposed packages, and the packages they depend on, and so on. PackedString (not Data.PackedString) is indeed a member of the lang-1.0 package. This normally wouldn't be a problem, because lang is hiden. However, if lang is a dependency of some other exposed package, then it becomes part of your program, and hence its modules cannot overlap with any others. What other packages are you using? Cheers, Simon

On Fri, Feb 11, 2005 at 10:49:56AM -0000, Simon Marlow wrote:
GHC has warned you about a module clash, for which you should be grateful :-) This could have lead to strange link-time errors, or even crashes, if you had used a library module which depended on the other PackedString.
The golden rule is (from the new section on packages in the GHC User's Guide):
There must be no overlaps in the modules provided by all of the exposed packages, and the packages they depend on, and so on.
PackedString (not Data.PackedString) is indeed a member of the lang-1.0 package. This normally wouldn't be a problem, because lang is hiden. However, if lang is a dependency of some other exposed package, then it becomes part of your program, and hence its modules cannot overlap with any others. What other packages are you using?
Ah, changing some code to use the hierarchical libraries and getting rid of my other package imports seems to have fixed things. cool. Does this mean I have been getting silent brokeness in the past due to the nameing conflict? John -- John Meacham - ⑆repetae.net⑆john⑈
participants (2)
-
John Meacham
-
Simon Marlow