The Agda standard library
Note
This is an experimental website, generated from the Agda source files
in a FORK of the
Agda standard library repository
using an alternative
Makefile
.
The theme Material for MkDocs
with the Awesome-Nav plugin
generates the hierarchical navigation menus from the directory structure
of the repository and the nav
specification in the file
docs/.nav.yml
.
The README section contains all the modules imported by doc/README.agda.
The Library section contains the built-in and standard
library modules that are (transitively) imported by the README
modules.
The HTML section contains the highlighted HTML pages
generated by agda --include-path=doc --trace-imports=0 --html
.
It should be straightforward to add versioning to the website.
The rest of this file was copied from the README page of the official library repository.
The standard library aims to contain all the tools needed to write both programs and proofs easily. While we always try and write efficient code, we prioritize ease of proof over type-checking and normalization performance. If computational performance is important to you, then perhaps try agda-prelude instead.
Getting started
If you're looking to find your way around the library, there are several different ways to get started:
-
The library's structure and the associated design choices are described in the README.agda.
-
The README folder, which mirrors the structure of the main library, contains examples of how to use some of the more common modules. Feel free to open a new issue if there's a particular module you feel could do with some more documentation.
-
You can browse the library's source code in glorious clickable HTML.
Installation instructions
See the installation instructions for the latest version of the standard library.
Old 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. The module index for older versions of the library is also available. For example, version 1.7 can be found at https://agda.github.io/agda-stdlib/v1.7/, just replace in the URL 1.7 with the version that you need.
Development version of Agda
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
.
Instructions for updating the experimental
branch.
The experimental
branch contains non-backward compatible patches for upcoming
changes to the language.
Type-checking with flags
The --safe
flag
Most of the library can be type-checked using the --safe
flag. Please consult
GenerateEverything.hs
for a full list of modules that use unsafe features.
The --cubical-compatible
flag
Most of the library can be type-checked using the --cubical-compatible
flag, which since Agda v2.6.3 supersedes the former --without-K
flag. Please consult
GenerateEverything.hs
for a full list of modules that use axiom K, requiring the --with-K
flag.
Contributing to the library
If you would like to suggest improvements, feel free to use the Issues
tab.
Even better, if you would like to make the improvements yourself, we have instructions
in HACKING to help
you get started. For those who would simply like to help out, issues marked with
the low-hanging-fruit tag are a good starting point.