
On Wednesday 20 February 2008 8:42:56 pm Roman Leshchinskiy wrote:
John Goerzen wrote:
I am concerned that the same thing is happening in Haskell. We know have three common list-like types: the regular list, strict ByteString, and lazy ByteString.
Why do you consider ByteString to be list-like but not arrays?
1) Does everyone agree with me that we have a problem here?
Yes, definitely. Haskell simply lacks a standard container library.
2) Would it make sense to make ListLike, or something like it, part of the Haskell core?
I don't think ListLike is the right approach. It's basically a fairly arbitrary collection of functions. It would be preferable, IMO, to identify a small set of combinators which would allow most list/sequence functions to be implemented generically and efficiently. Personally, I'd go with something like streams (the stream fusion ones) but I'm biased, of course.
From what I've heard of streams in this discussion, that does sound quite interesting. Unless streams are used internally for the [] implementation, though, we'd still need something to resolve the library compatibility question. -- John