
On Wed, Oct 20, 2010 at 10:19 PM, Bas van Dijk
Hello,
I would like to make three proposals, in order of importance IMHO:
1. Export String from Data.String. Most modules in base and on Hackage of the form: Data.<type> also export <type>. I think it's surprising and confusing that Data.String doesn't conform to this pattern.
2. Unexport String from Data.Char. I feel less strongly about this one, but in general I think it is good that a symbol is exported from as few modules as possible.
3. Export the String operations: lines, words, unlines and unwords from Data.String. I feel even less strongly about this one. However these are operations on Strings so it makes sense to export them from Data.String. As a counter argument you could say these operations either receive or produce a _list_ of Strings so they only belong in Data.List.
If we accept 3 then in the spirit of "export a symbol from as few modules as possible", you may expect a fourth proposal: Unexport the String operations: lines, words, unlines and unwords from Data.List. However I think this will break lots of programs. I have no problem also discussing this one though.
Discussion deadline:
3 weeks from now: Wednesday 10 November.
Ticket with patches:
http://hackage.haskell.org/trac/ghc/ticket/4422
Regards,
Bas
I would like to wrap up this proposal. The consensus was that all proposals should be applied: 1. Export String from Data.String. 2. Unexport String from Data.Char. 3. Export the String operations: lines, words, unlines and unwords from Data.String. We leave the 4th proposal for later: Unexport the String operations: lines, words, unlines and unwords from Data.List. I will move the ticket status to 'patch'. Thanks, Bas