The Agda standard library
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
CHANGELOG Created new changelog and development messages Oct 20, 2018
README Fixed #135. Nov 26, 2018
notes Minor typo Nov 3, 2018
src Added left and right congruence properties to algebraic structures (#550 Dec 7, 2018
travis [ fix #547 ] Add --safe flags to all safe modules (#549) Dec 7, 2018
.boring Adapted Dominique's patches to my taste. Made more things polymorphic. Feb 19, 2011
.gitignore Updated .gitignore with `EverythingSafe.agda` Sep 18, 2018
.mailmap Added .mailmap file. Jun 18, 2014
.travis.yml .travis.yml: "intallplan.txt" -> "installplan.txt" (#534) Nov 16, 2018
AllNonAsciiChars.hs Added code point information Jan 17, 2014
CHANGELOG.md Added left and right congruence properties to algebraic structures (#550 Dec 7, 2018
GNUmakefile [ fix ] keeping `make test` as the default target Jul 7, 2018
GenerateEverything.hs Try to make formatting issue from new modules clearer (#441) Oct 16, 2018
HACKING.md Try to make formatting issue from new modules clearer (#441) Oct 16, 2018
Header [ fix ] Generating EverythingSafe Aug 30, 2018
LICENCE Added Jason Hu to credits Jun 25, 2018
README.agda Created new changelog and development messages Oct 20, 2018
README.md Updated README.md Oct 20, 2018
Setup.hs Added a Cabal file for the helper programs. Mar 25, 2010
lib.cabal [ .cabal ] Tested with GHC 8.4.4 and 8.6.2. Nov 5, 2018
publish-listings.sh git add --all in publish-listings script Jan 24, 2014
standard-library.agda-lib Renamed the library. Feb 23, 2016

README.md

The Agda standard library

The standard library aims to contain all the tools needed to easily write both programs and proofs. While we always try and write efficient code, we prioritise ease of proof over type-checking and normalisation performance. If computational performance is important to you, then perhaps try agda-prelude instead. You can browse the library source code in glorious clickable html here.

Quick installation instructions

Use version v0.17 of the standard library with Agda 2.5.4.1.

Install it as follows. Say you are in directory $HERE (replace appropriately).

  git clone https://github.com/agda/agda-stdlib.git
  cd agda-stdlib
  git checkout v0.17
  cabal install

The last comment is optional, omit it if you are lacking cabal.

Register it by adding the following line to $HOME/.agda/libraries:

  $HERE/agda-stdlib/standard-library.agda-lib

To use the standard library in you project $PROJECT, put a file $PROJECT.agda-lib file in the project root containing:

  depend: standard-library
  include: $DIRS

where $DIRS is a list of directories where Agda searches for modules, for instance . (just the project root).

If you want to refer to the standard library in all your projects, add the following line to $HOME/.agda/defaults

  standard-library

Find the full story at readthedocs.

Contributing to the library

If you would like to suggest improvements, feel free to use the Issues tab. If you would like to make improvements yourself, follow the instructions in HACKING.

Non-standard versions of Agda

If you're using an old version of Agda, you can download the corresponding version of the standard library on the Agda wiki.

If you're using a development version of Agda rather than the latest official release you should use the experimental branch of the standard library rather than master. The experimental branch contains non-backwards compatible patches for upcoming changes to the language.

Type-checking with the --safe flag

After the next full release of Agda, most of the library will be able to be type-checked with the --safe flag. Only the following modules are not compatible:

  Data.Char.Unsafe
  Data.Float.Unsafe
  Data.Nat.Unsafe
  Data.Nat.DivMod.Unsafe
  Data.String.Unsafe
  Data.Word.Unsafe
  IO
  IO.Primitives
  Reflection
  Relation.Binary.PropositionalEquality.TrustMe