Re: Hat bug report: Ambiguous occurrence `List'
Fergus Henderson <[email protected]> Tue, 22 Jun 2004 03:19:54 -0700
| Newsgroups | gmane.comp.lang.haskell.hat |
|---|---|
| Message-ID | <[email protected]> |
On 22-Jun-2004, Malcolm Wallace <[email protected]> wrote: > Fergus Henderson <[email protected]> writes: > > > | Hat/Foo/List.hs:1: > > | Ambiguous occurrence `List' > > | It could refer to either `Hat.Hat.List', imported from Hat.Prelude at > > | Hat/Foo/List.hs:30 > > | or `Hat.Foo.List.List', defined at > > | Hat/Foo/List.hs:32 > > Unfortunately, ghc-6 seems to be rather over-eager to report ambiguous > use of identifiers, where in fact the usage is not ambiguous (the > Hat.Hat versions are only visible qualified, whereas your Foo.List > is visible unqualified). The Hat.Hat versions are imported unqualified in line 30 of Hat/Foo/List.hs, which is "import Hat.Prelude". So I think this is a Hat bug, not a ghc bug. > Ideally we will try to find a fix for this. In the meantime, you > can work around the bug either by renaming your own versions of the > overlapping identifiers, or always using them qualified (including > in export lists). And including in _implicit_ export lists? Well, I tried that, but the result was another Hat bug: a pattern match failure for the following function in src/hattrans/TraceId.hs: tyClsInfo :: TraceId -> TyCls tyClsInfo (TI _ (Just (TyCls tyCls))) = tyCls | bash$ hmake -hat Main.hs | hat-trans Foo/List.hs | Creating directories Hat Hat/Foo | | Fail: TraceId.hs:152: Non-exhaustive patterns in function tyClsInfo | | bash$ cat Main.hs | import Foo.List | main = Foo.List.main | | bash$ cat Foo/List.hs | module Foo.List(Foo.List,main) where | | class List a b where | foo :: a -> b | | main :: IO () | main = return () -- Fergus J. Henderson | "I have always known that the pursuit Galois Connections, Inc. | of excellence is a lethal habit" Phone: +1 503 626 6616 | -- the last words of T. S. Garp.