Recommended libraries

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
  • data-default Default values for some datatypes
  • process Run and interact with separate system processes
  • resourcet Safe resource allocation with guaranteed resource cleanup, with full exception safety
  • safe Safe versions of a number of commonly used functions, such as head and tail
  • split Commonly needed list splitting algorithms
  • time Time and date handling

Core data types

  • bytestring Raw binary data
  • text Textual data
    • text-icu Bindings to the ICU library, providing many i18n features such as collation
  • vector Int-indexed arrays

Data structures

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

Stream processing

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


  • 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