Recommended libraries

As of March 2020, School of Haskell has been switched to read-only mode.

Please check out the library list on haskell-lang, available at:

This page is no longer maintained, and may be out of date.


FP Complete's development tools provide you with access to many libraries. A full and up-to-date list can be found on our Haddock documentation index. Many of these libraries are provided as a convenience for users. In general, we recommend using the following well supported libraries:


  • base Base libraries providing common, core functionality
  • process Run and interact with separate system processes
  • resourcet Safe resource allocation with guaranteed resource cleanup, with full exception safety
  • time Time and date handling
  • mwc-random Random number generation
  • classy-prelude Alternate prelude encouraging best practices

Core data types

Data structures

Exception handling

Monad transformers

  • lifted-base Versions of some core functions, with built-in support for monad transformers
  • mtl Monad Transformer Library
    • transformers transformers is a slightly lower-level library providing many of the core features of mtl. In general, you should probably just use mtl, but occassionally you may want some of the transformers modules instead.

Concurrency and parallelism

  • stm Software Transactional Memory
  • resource-pool Resource pools, such as database connections

Stream processing

  • conduit Provides a simple means of producing, transforming, and consuming streams of data with constant memory usage and deterministic resource handling.


  • hspec Test framework, leverage HUnit and QuickCheck


  • system-filepath Abstract data type representing paths, and allowing type-safe modifications
    • system-fileio A number of convenience functions for operating on the type-safe FilePath type

Data processing

Structured textual formats

Arbitrary parsing

  • parsec Textual parsing library providing user-friendly error messages and position tracking. Can also be used to parse arbitrary token types, not just textual data.
  • attoparsec High performance binary and textual parsing
  • cereal Binary serialization



Web development

  • email-validate Validate email addresses for correctness, and canonicalize into a standard format.
  • hamlet HTML templating
  • hjsmin Javascript minification
  • yesod Yesod Web Framework for type safe, high performance, RESTful applications. For more information, see the Yesod website
  • warp High performance web server (used by Yesod, but also usable on its own)


Concurrent programming

  • async Well designed async functionality
  • stm Software Transactional Memory

Command line processing


comments powered by Disqus