Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Systems à la Carte

Hackage version Build status

This project provides an executable framework for developing and comparing build systems, viewing them as related points in landscape rather than as isolated phenomena. The code derives from the ICFP 2018 paper "Build Systems à la Carte" (PDF).

Getting Started

You may be interested to:

  • Run stack test to execute all the provided build systems on a very simple example.
  • Look at the HTML documentation of all modules for the last release, or generate it yourself using stack haddock.
  • Read the code, particularly Build.System, which is the concrete implementation of all build systems.

Related Material