ats-pkg: Package manager for ATS

[ ats, bsd3, development, library ] [ Propose Tags ]

A collection of scripts to make building ATS projects easy.

[Skip to Readme]
Dependencies ansi-wl-pprint, ats-pkg, base (>=4.7 && <5), bytestring, composition-prelude (>=, dhall, directory, filemanip, http-client, http-client-tls, lens, optparse-applicative, parallel-io, process, shake, shake-ats, shake-ext (>=, tar, temporary, text, unix, zlib [details]
License BSD-3-Clause
Copyright Copyright: (c) 2018 Vanessa McHale
Author Vanessa McHale
Category Development
Home page
Source repo head: git clone
Uploaded by vmchale at Mon Jan 29 05:57:42 UTC 2018
Distributions NixOS:
Executables atspkg
Downloads 2643 total (287 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2018-01-29 [all 1 reports]
Hackage Matrix CI





Enable -Werror


Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees

Readme for ats-pkg-

[back to package description]


Build Status

This is a build system for ATS written in Haskell and configured with Dhall.


The easiest way to install is via a script, viz.

 $ curl -sSl | bash -s

Alternately, you can download Cabal and GHC and install with

 $ cabal new-install ats-pkg --symlink-bindir ~/.local/bin


atspkg is configured with Dhall. You may wish to read the Dhall tutorial first, but you do not need to fully understand everything to get started.

Building a Binary Package

The minimal configuration for a package with a binary target is as follows:

let pkg =

in pkg //
  { bin =
      { src = "src/program.dats"
      , target = "target/program"
      , gc = True

You need only specify the source file and the target; atspkg will parse your ATS source files and track them.

Depending on a Library

Library specifications are also written in Dhall. Let's look at an example:

let dep =
  { libName = "atscntrb-concurrency-0.1.0"
  , dir = ".atspkg/contrib"
  , url = ""
  , libVersion = [0,1,0]

in dep

Building a Haskell Library

You can see an example here. You can

let pkg =

in pkg //
  { atsSource = [ "ats-src/{{ project }}.dats" ] }