Applications and libraries
For the latest set of ready to use libraries and tools, visit hackage.haskell.org
Standard library
- Haskell's standard library is called the Prelude. It is implicitly imported by default, and includes the most commonly used functions.
Haskell library collections
In increasing order of size:
- Haskell Prelude.
- The Haskell Language and library specification defines basic, portable functionality.
- Changes to these libraries are handled by the Haskell' process.
- The The GHC boot libraries, which come with GHC, are generally an improved and expanded version of the Haskell 98 libraries, in the hierarchical namespace.
- Changes to these libraries are handled by the package maintainer if one exists, or the Library submissions process if not.
- Hoogle - the Haskell API Search Engine - indexes the above libraries
- The Hackage database aims to be a comprehensive a collection of released Haskell packages.
See also Hackage and how to install a Cabal package.
Hackage
New libraries are packaged and distributed from Hackage
Start on Hackage if looking for a library not in the standard.
- Developers: you can upload your cabalised packages to hackage (if you don't have a login, just ask).
Haskell applications and libraries
Applications, libraries and tools for Haskell or written in Haskell have been classified below, but you should check Hackage for the latest list.
- Audio, music and sound
- Bioinformatics
- Concurrency and parallelism
- Compilers and interpreters
- Compiler construction, lexing, parsing, pretty printing
- Cryptography and hashing
- Data Structures and IO Libraries
- Database interfaces
- Editors written in Haskell and editors for Haskell.
- Extended Haskell
- Games
- Genetic programming
- Graphical User Interface (GUI) Libraries
- Graphics
- Hardware verification
- Linguistics and natural language processing
- Mathematics and physics
- Network
- Operating systems and systems programming (also emulators)
- Program development
- Robots
- Theorem provers
- Tools for interfacing with other languages
- Web, HTML, XML
Other places to look include:
- The Library hierarchy page on this wiki
- The Haskell community reports
- The mailing list for discussion of issues related to libraries.]
You can also propose and vote on new libraries that you'd like, and look at our past Summer of Code proposals.
Guidelines for developers
Developer guides:
- How to write a new Haskell library
- How to propose changes to the standard libraries
- Creating a .deb from a Haskell Cabal package
- Creating a Haskell library by example
- Guide to making standard library submissions
- If you notice the library documentation is lacking, or could be improved, please report it here
- Google Code Search can help identify common idioms, improving your API.
- Future projects, more projects people would like.
- Project activity for some of the larger Haskell projects is graphed here.
- Cabal, The Common Architecture for Building Applications and Libraries, is a framework for packaging, building, and installing any tool developed in the Haskell language.
- Hack-Nix, a set of tools based on the Nix package manager to manage multiple setups to build a project
Proposals for the module name space layout that can be used to guide the construction of new libraries.
Libraries for other languages
If you are thinking about designing a new library for Haskell, you ought to look what has been done in other languages. Here are standard library definitions for