Combinator library

A combinator library is a software library which implements combinatory logic as combinators, for a functional programming language: "the key idea is this: a combinator library offers functions (the combinators) that combine functions together to make bigger functions".[1] These kinds of libraries are particularly useful for allowing domain-specific languages to be easily embedded into a general purpose language by defining a few primitive functions for the given domain and turning over the task of expanding higher-level constructs to the general language. An example would be the monadic Parsec parser for Haskell. The library approach allows the parsers to be first-class citizens of the language.