A dependently typed functional programming language and proof assistant

Category: Dependent types

Hackage Homepage

About Agda

Agda is a dependently typed functional programming language: It has inductive families, which are similar to Haskell's GADTs, but they can be indexed by values and not just types. It also has parameterised modules, mixfix operators, Unicode characters, and an interactive Emacs interface (the type checker can assist in the development of your code). Agda is also a proof assistant: It is an interactive system for writing and checking proofs. Agda is based on intuitionistic type theory, a foundational system for constructive mathematics developed by the Swedish logician Per Martin-Löf. It has many similarities with other proof assistants based on dependent types, such as Coq, Epigram and NuPRL. Note that if you want to use the command-line program (agda), then you should also install the Agda-executable package. The Agda package includes an Emacs mode for Agda, but you need to set up the Emacs mode yourself (for instance by running @agda-mode setup@; see the README). Note also that this library does not follow the package versioning policy, because the library is only intended to be used by the Emacs mode and the Agda-executable package.


Ulf Norell, Nils Anders Danielsson, Catarina Coquand, Makoto Takeyama, Andreas Abel, Darin Morrison...


Ulf Norell <>




mtl, QuickCheck, haskell-src-exts, containers, pretty, directory, old-time, bytestring, array, binary, zlib, filepath, process, haskeline, xhtml, hashable, hashtables, syb, base, utf8-string, epic



Latest Version

Older Versions

2.2.0, 2.2.10, 2.2.2, 2.2.4, 2.2.6, 2.2.8, 2.3.0,