This page is a sample of the most common packages. To see a complete list see the complete package list page.
Core packages solve common problems and are regularly used in most Haskell programs.
Basic data types, file input/output, environment, concurrency, etc.
Efficient immutable string/text data type for text/unicode data.
Dealing with dates, times, time zones, milliseconds, durations, etc.
Portably deal with file paths across Windows, OS X, Linux, etc.
Efficient arrays, immutable and mutable versions.
Immutable maps/dictionaries, sets, and sequences with efficient appending.
Immutable maps/dictionaries and sets, implemented with hashes.
Portably deal with directories, files, file properties, etc.
Efficient immutable vectors of bytes for handling binary data.
Utilities and combinators for parsing command line options
Time how long (benchmark) your functions take to run with reliable statistical analysis.
Network programming; TCP/UDP sockets, UNIX domain sockets, etc.
Launch processes, one-shot or interactively, handle stdout, stderr, etc.
Abstraction for performing many actions asynchronously and concurrently.
Efficient JSON parsing and printing, automatic deriving for your data types, etc.
Efficient parsing library, good for network protocols and complicated binary formats.
Check properties about functions with randomly generated inputs for sanity checks.
Software-transactional memory; for atomic, reliable, composable, concurrency.
Extensible optionally-pure exceptions, abstracting over various types.
Simple POSIX-compatible regex matching.
Packages for common tasks in Haskell programs. Typically more than one option.
Test frameworks that group together a bunch of tests and output success/fail results in a structured way.