HDBC provides an abstraction layer between Haskell programs and SQL relational databases. This lets you write database code once, in Haskell, and have it work with any number of backend SQL databases (MySQL, Oracle, PostgreSQL, ODBC-compliant databases, etc.) HDBC is modeled loosely on Perl's DBI interface, though it has also been influenced by Python's DB-API v2, JDBC in Java, and HSQL in Haskell.
hslogger is a logging framework for Haskell, roughly similar to Python's logging module. hpodder lets each log message have a priority and source be associated with it. The programmer can then define global handlers that route or filter messages based on the priority and source. hslogger also has a syslog handler built in.
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.
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.