Proposal: Export String from Data.String (and two related proposals)

Bas van Dijk v.dijk.bas at gmail.com
Wed Oct 20 16:19:15 EDT 2010


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


More information about the Libraries mailing list