LDAP for Haskell provides an interface to the C LDAP API for Haskell programmers. With it, you can search and modify LDAP directories. The Haskell binding features automatic memory management and proper handling for binary data, and handles all marshalling into and out of C data structures for you automatically.
AnyDBM is a Haskell module that provides a generic infrastructure for supporting storage of hash-like items with String-to-String mappings. It can be used for in-memory or on-disk storage. Two simple backend drivers are included with this package: one that is RAM-only, and one that is persistent and disk-backed. The hdbc-anydbm package provides another driver which lets you use simple tables in any SQL database to provide a DBM-like interface. MissingPy also provides a Python driver which lets you use any Python anydbm driver under Haskell AnyDBM.
The ListLike module provides a common interface to the various Haskell types that are "list-like". Predefined interfaces include standard Haskell lists, Arrays, ByteStrings, and lazy ByteStrings. Custom types can easily be made ListLike instances as well. ListLike also provides for String-like types, such as String and ByteString, for types that support I/O, and for types that can handle infinite lists.
The ConfigFile module for Haskell works with configuration files in a standard format that is easy for the user to edit, easy for the programmer to work with, and yet remains powerful and flexible. It is inspired by, and is compatible with, Python's ConfigParser module. It uses files that resemble Windows .INI-style files, but with numerous improvements. ConfigFile provides simple calls to both read and write config files. It's possible to make a config file parsable by this module, the Unix shell, and make.
Haskell Ports Library provides ports in Haskell. Ports are an abstraction for modelling variables whose values evolve over time without the need to resort to mutable variable, such as IORefs. More precisely, a port represents all values that a time-dependent variable successively take as a stream, where each element of the stream corresponds to a state change. A port supports concurrent construction of the time series, or stream of values. Ports are ideally suited for purely functional GUI interfaces that completely avoid the use of mutable variables.
hmake is a compilation manager for Haskell programs. It is compiler independent, and liberates the programmer from needing to write Makefiles by extracting dependencies directly from the source code. It is aware of all compiler invocation conventions, and of several common pre-processors, including cpp, greencard, hsc2hs, c2hs, and happy.
cpphs is a more liberal re-implementation of cpp, the C pre-processor, in Haskell. The C pre-processor is widely used in Haskell source code, but a true cpp is often unavailable on some systems (such as native Windows), and the common cpp provided by the gcc 3.x series has become more strictly tied to the C language, in subtle ways that are incompatible with Haskell's syntax. This includes problems with, for instance, string gaps, and prime characters in identifiers. This project provides a robust alternative to cpp that is more compatible with Haskell and can be distributed with compilers.
HaXml is a suite of libraries and tools for manipulating XML documents in Haskell. It includes a parser, a pretty-printer, a validator, a combinator library for transforming documents, and converters for changing a Haskell datatype into an XML DTD, and for changing an XML DTD into a set of Haskell datatypes. There are also tools for a query language based on XQL.