[Haskell-cafe] The Proliferation of List-Like Types

Henning Thielemann lemming at henning-thielemann.de
Wed Feb 20 23:07:46 EST 2008


On Thu, 21 Feb 2008, Roman Leshchinskiy wrote:

> John Goerzen wrote:
>
> > 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.

As long as it is only about speeding up list processing, one might also
consider this as optimization problem. This could be handled without
adapting much List based code in applications to a generic sequence class.
That is, if I convert the result of a composition of list functions to a
lazy ByteString, I tell the compiler that I don't need full laziness and
the compiler can optimize, say
   ByteString.fromList . List.func1 . List.func2 . List.build
 to
   ByteString.func1 . ByteString.func2 . ByteString.build
 or even better
   ByteString.fusedFunc1Func2Build
 by some clever fusion framework. I think that a type class is easier to
justify if it unifies data structures that are more different than just
providing the same API with different efficiency.


More information about the Haskell-Cafe mailing list