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
_______________________________________________
Glasgow-haskell-users mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users