The standard OCaml library is nice, but is lacking in some
ways. ZUtils is an overlay of libraries to address what is
lacking in the standard library. It is also designed to
work on top of ExtLib. There are a few exceptions (hashtbl
and set). Download here.
- Provides some abstract data types (eg. Foldable).
- Fixes polymorphic compare, hash, and provides polymorphic
print, etc.. See my caml-list post "on polymorphic compare
and objects" here
for details.
- These generic polymorphic functions will call the
appropriate method when applied on objects. This
means you can write the appropriate behavior for an
object type. For standard types (eg. tuples) the
behavior is the same as before. This means if you
create a type whose correct compare behavior is not
realized by, say, structual comparison, you should
wrap it in an object and implement the correct
method.
- All library functions use the new generic polymorphic
functoins (eg. List.assoc). This means you never need
worry that, for example, List.assoc will fail on a user
defined data type because its equality is not structural
or because it has a functional value inside, etc..
- More general library functions. Eg. Hashtbl can be
created to use any hash function (without use of a
functor)
- Plotting library based on mlgrace. Mostly it provides some
functional convenience methods
- Misc conveniences (eg. function composition, I/O conveniences like readlines (string -> string list))