Hi,
I'm pleased to announce the first release of ListLike, a generic
interface to the various list-like structures in Haskell.
This grew out of the annoyance at having to handle Strings and
ByteStrings differently in my code, and has expanded on well past there.
ListLike implements an API very similar to Data.List, but based on a
typeclass. The module ships with instance definitions for lists,
ByteStrings, lazy ByteStrings, Arrays, and even Maps.
Additional classes are available for types that implement some
additional features: String-like behavior, infinite list capability, and
I/O.
Finally, an extensive set of default functions is provided. Only
minimal effort -- as little as four functions -- are needed to make your
list-like type an instance of ListLike.
ListLike is backed by an extensive suite of QuickCheck tests wrapped in HUnit,
which tests virtually every function against every type. As of right
now, 1567 test cases are executed, and all pass.
Homepage:
http://software.complete.org/listlike/
Download from:
http://software.complete.org/listlike/downloads
API ref:
http://software.complete.org/listlike/static/doc/
Hackage page:
http://hackage.haskell.org/cgi-bin/hackage-scripts/package/ListLike-1.0.0
-- John