[Haskell] ANN: data-ordlist-0.4, now with mergeAll and unionAll

Leon Smith leon.p.smith at gmail.com
Mon Feb 15 02:13:37 EST 2010


Data-Ordlist is a package of convenience functions for dealing with
ordered lists.   It's had it's second release in 7 days,  with
bugfixes,  documentation improvements,  and now two new functions.
Big thanks to  Omar Antolín Camarena,  Topi Karvonen,  Heinrich
Apfelmus,  and Dave Bayer for (knowingly or unknowingly) contributing
to this release!

http://hackage.haskell.org/package/data-ordlist

Version 0.4:    (2010-02-15)

  * The "CHANGES" file was added to document the changes between releases.

  * Documentation Improvements

  * A rough first pass at a test suite

  * The functions `mergeAll` and `unionAll` were added.  They operate
    on a possibly infinite list of possibly infinite ordered lists; assuming
    the heads of the lists are ordered.

    Thanks goes to Omar Antolín Camarena, Heinrich Apfelmus, and Dave Bayer.

    Omar Antolín Camarena suggested the addition,  located the article
    used as the basis for the implementation,  and was quite helpful with
    testing and debugging.

    Heinrich Apfelmus wrote his "Implicit Heaps" article, where he
    simplified an algorithm by Dave Bayer.  It is this article that forms
    the basis of our implementation.

    <http://apfelmus.nfshost.com/articles/implicit-heaps.html>

    Dave Bayer posted his 'venturi' implementation to the haskell-cafe
    mailing list on 2007 Jul 22.  It also appears as "BayerPrimes.hs"
    inside of Melissa O'Neill's "haskell-primes.zip":

    <http://www.mail-archive.com/haskell-cafe@haskell.org/msg27612.html>
    <http://www.cs.hmc.edu/~oneill/code/haskell-primes.zip>

Version 0.2:    (2010-02-07)

  * The module name was changed from `Data.OrdList` to `Data.List.Ordered`

  * Fixed bugs in `insertSetBy`,  `insertBagBy`,  and `nub`.  The insertion
    functions assumed reversed lists, while `nub` failed to remove duplicates.

    Thanks to Topi Karvonen for reporting the first issue!

  * Changed semantics of `insertSetBy` slightly:  the new version replaces an
    element if it is already there.  If the old semantics turns out to be
    important,  a new function can be added at a later date.

  * Changed semantics of `nubBy`: the new version negates the binary relation,
    so that `new_nubBy f == old_nubBy (not . f)`.  It is now in better keeping
    with the spirit of the rest of the library,  and mades the bug in `nub`
    more obvious.

  * Better documentation,  I hope.  At the very least, the process of
    documenting `nubBy` revealed the bug in `nub`.


More information about the Haskell mailing list