Non-exhaustive patterns in function provSrcLoc

1999-06-13 Thread Michael Weber

Hi!

Yes, I know, the following code snippets are wrong, because instances are
always imported. The compiler yields an error message, like it should:


Foo1.lhs:2:
Duplicate or overlapping instance declarations
for `Read FooData'
Name.lhs:382: Non-exhaustive patterns in function provSrcLoc


But the "Non-exhaustive patterns" error shouldn't be there, should it?
BTW: is it possible to show the names of the overlapping modules?


Cheers,
Michael

\begin{code}
module Data where
data FooData = FooData
\end{code}

\begin{code}
module Foo2 where
import Data
instance Read FooData where
   readsPrec _ _ = [(FooData,"")]
\end{code}

\begin{code}
module Foo3 where
import Data
instance Read FooData where
   readsPrec _ _ = [(FooData,"")]
\end{code}

\begin{code}
module Foo1 where
import Data
import Foo2
import Foo3

data Baz = Baz deriving Read -- if this line is commented out - no error
trigger  = FooData   -- else, if this line is commented out - no error
 -- instances only imported if used?
\end{code}
-- 
XXXVII:
Ninety percent of the time things will turn out worse than you expect.
The other 10 percent of the time you had no right to expect so much.



Modules with empty export lists

1999-06-13 Thread Michael Weber

Hi!

The following code produces:

MTest.lhs:2:10: parse error on input: ")"


although this should be perfectly ok... consider a module that just imports
instance declarations...


Cheers,
Michael

\begin{code}
module M() where

instance Show ...
\end{code}

-- 
XXXVII:
Ninety percent of the time things will turn out worse than you expect.
The other 10 percent of the time you had no right to expect so much.