
Yitz: very helpful. Can you turn your proposal into a Wiki page? It's different to Johan's. Could you add examples? I don't fully understand your design. | [This has the additional advantage of giving SPJ | motivation to remain engaged, because he seems | to prefer B. :)] True: but that's because I think that in the end A will be deemed too clumsy, so we'll end with B anyway. And I'd rather not do both. But I'm quite open to persuasion! | Proposal for A: ... | When a module M.A is directly nested in module M, there is | an implied import in the enclosing module M as follows: | | import qualified M.A as A OK, so consider this: module M where module T where data T = MkT { x :: Int } module S where data S = MkS { x :: Int } So inside M I can refer to T.x and S.x. Fine! What does M export? The current rules say that it cannot export two things both called "x". So this program will be rejected. But that is obviously not what you want. Simon