[Haskell] AVL library update available.

Adrian Hey ahey at iee.org
Sun Jun 26 15:23:28 EDT 2005




..you can find the another release of the Data.Tree.AVL library.

A few notes about this release:

 The library is not intended to provide an elegant api or to be a
 model of what general purpose collection classes should look like.
 It just aims to provide raw AVL operations as efficiently and
 flexibly as possible.

 This version and the Data.COrdering library have had a major
 purge of 1 line trivia (which I decided were really little more
 than name space pollution in practice). I'm sure that anybody
 using it is quite capable of writing whatever trivia they need
 so I decided to try and restrict myself to the stuff you really
 don't want to have to write yourself if you can avoid it. So
 the Map module has been removed completely.

 This release has also had a Zipper module added, which should
 be useful for implementing many of those awkward operations not
 covered by the main library.

 Earlier (on the libraries list I think), I said I would also
 include AVL tree based clones of Data.Set and Data.Map. I did
 start on this but then stopped as I don't think there's any
 point. The native AVL api is more useful (in my completely
 biased and not at all humble opinion :-). But these clones
 are about 75% complete so if somebody really wants them finished
 I might be persuaded to do this. In the meantime there's are some
 conversion utilities to convert between AVL trees and Data.Set,

 The library is not yet cabalised as there are apparently some
 difficulties using cabal with the ghc -split-objs option
 (which I use to reduce the bloat of executables). But the
 makefile enclosed should work OK on *nix environments for
 ghc 6.4 only (it uses new package descriptions so won't work
 with earlier ghc versions). The source code should be OK with
 other Haskells too, but the makefile assumes ghc. I haven't
 tried building under windows (shouldn't be too hard but makefile
 would probably need some hacking).

I'd like to think this is reasonably complete (and stable) now,
but it almost certainly isn't complete. So if anybody has any
feature requests please let me know. I've marked the modules
as being "stable", so I promise not to introduce any radical
api changes or disappearances in future releases.

Adrian Hey

More information about the Haskell mailing list