The size of things

Ch. A. Herrmann
Fri, 15 Feb 2002 17:07:14 +0100

>>>>> "Simon" == Simon Marlow <> writes:

    >> Yes, I see.  Would it be possible to have a standard strict list,
    >> i.e. something equivalent of
    >> data SList a = SNil | SCons !a SList
    >> (which could be a member of the same class as the normal lists,
    >> and have the usual functions (length, ++, isPrefixOf...) 
    >> overloaded)?

    Simon> Yes, it would be possible, but we can't do it without making
    Simon> sweeping changes to standard libraries and deviating from
    Simon> Haskell 98 quite a bit.  It's something to bear in mind
    Simon> should the topic of Haskell 2 come up, though.

If there are significant changes to be made anyway, wouldn't it be 
the best thing to generalize lists to a type class of which lists 
are an instance of? The nice list comprehension syntax could then 
be used also for other data structures, and combinators like map, filter,
scanl applied to arrays, trees etc. 

Analogously to the Num class, one could have a function like *toList*, 
and one would expect from a program to establish:  

   toList . combinator_in_X_a = combinator_in_[a] . toList