Our module Collection is now available at
http://www.numeric-quest.com/haskell/Collection.html
It is based on Chris Okazaki's "BinaryRandomAccessList",
but with a twist and plenty of changes and additions.
An excerpt from the summary is appended below.
Jan
=======================================================
Datatype Collection can be used almost anywhere where
List is used, but it also supports reasonably fast lookup and
update operations, and fast append operation. While the
latter is equivalent to the head-oriented operation on standard
lists, it also brings one additional benefit: if a collection
grows up by element appending rather than by up-front insertion we
do not have to worry about the re-enumeration of the existing
indices every time we add a new element to the collection. This is
important for database applications.
New class Container, defined here, exemplifies portability between
certain class of functions from List and Collection. Most of
them have familiar names, such as: length, take, foldl, etc.
We have ported so far certain group of List functions that
seems to be useful for one of our applications that
uses Collection datatype, but we will be revising this module
in the days to come and more functionality common to List
and Collection is to be expected.