Haskell98 undefinedness

Iavor S. Diatchki diatchki@cse.ogi.edu
Wed, 12 Sep 2001 10:13:12 -0700


hello,

On Wed, Sep 12, 2001 at 08:51:20AM -0700, Sigbjorn Finne wrote:
> 
> So, it's not considered an error if you do something
> like
> 
>   module A ( B(C), ...some other stuff..., B(D) ) where 
>   ...
>   data B = C | D 
> 
> but C and D is exported. Is the extra flexibility of
> allowing duplicates really worth it?
>
although this is a little strange i think it should be allowed 
(an implementation could still produce a warning).

here is an example of a simillar situation, where it is not as 
obvious that constructors of the same datatype are being exported.


---------------
module A where

data T = C | D
---------------

-------------------------
module B (module A) where

import A
-------------------------

---------------------------------
module C ( A.T(C), B.T(D) ) where

import A
import B
---------------------------------

bye
iavor