Applications and libraries
Applications, libraries and tools written in Haskell.
For the latest set of ready to use libraries and tools, visit hackage.haskell.org
1 Haskell libraries
The first places to look for data types or functions are:
- The Haskell 98 Prelude
- Haskell 98 Language and library specification
- The Haskell Hierarchical Libraries bundled with Haskell implementations
- Hoogle - the Haskell API Search Engine, indexing the above libraries
- The Hackage database - a collection of released Haskell packages
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).
3 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
- 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
- Genetic programming
- Graphical User Interface (GUI) Libraries
- Hardware verification
- Linguistics and natural language processing
- Mathematics and physics
- Operating systems and systems programming (also emulators)
- Program development
- 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.]
4 Guidelines for developers
- 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.
5 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