Idris



Website: idris-lang.org

Designed by: Edwin Brady


Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker.

Idris may be used as a proof assistant, but is designed to be a general-purpose programming language similar to Haskell.

The Idris type system is similar to Agda’s, and proofs are similar to Coq’s, including tactics (theorem proving functions/procedures) via elaborator reflection.

Compared to Agda and Coq, Idris prioritizes management of side effects and support for embedded domain-specific languages.

Idris compiles to C (relying on a custom copying garbage collector using Cheney’s algorithm) and JavaScript (both browser- and Node.js-based).

There are third-party code generators for other platforms, including Java virtual machine (JVM), Common Intermediate Language (CIL), and LLVM.Idris is named after a singing dragon from the 1970s UK children’s television program Ivor the Engine.