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
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users

Reply via email to