idris: Functional Programming Language with Dependent Types

[ bsd3, compilers-interpreters, dependent-types, library, program ] [ Propose Tags ]

Idris is a general purpose language with full dependent types. It is compiled, with eager evaluation. Dependent types allow types to be predicated on values, meaning that some aspects of a program's behaviour can be specified precisely in the type. The language is closely related to Epigram and Agda. There is a tutorial at http://www.idris-lang.org/documentation. Features include:

  • Full dependent types with dependent pattern matching

  • where clauses, with rule, simple case expressions, pattern matching let and lambda bindings

  • Type classes, monad comprehensions

  • do notation, idiom brackets, syntactic conveniences for lists, tuples, dependent pairs

  • Totality checking

  • Coinductive types

  • Indentation significant syntax, extensible syntax

  • Tactic based theorem proving (influenced by Coq)

  • Cumulative universes

  • Simple foreign function interface (to C)

  • Hugs style interactive environment

Modules

  • IRTS
    • IRTS.BCImp
    • IRTS.Bytecode
    • IRTS.CodegenC
    • IRTS.CodegenCommon
    • IRTS.CodegenJava
    • IRTS.CodegenJavaScript
    • IRTS.Compiler
    • IRTS.Defunctionalise
    • IRTS.DumpBC
    • IRTS.Inliner
    • Java
      • IRTS.Java.ASTBuilding
      • IRTS.Java.JTypes
      • IRTS.Java.Mangling
      • IRTS.Java.Pom
    • IRTS.Lang
    • IRTS.Simplified
    • IRTS.System
  • Idris
    • Idris.ASTUtils
    • Idris.AbsSyntax
    • Idris.AbsSyntaxTree
    • Idris.Apropos
    • Idris.CaseSplit
    • Idris.Chaser
    • Idris.CmdOptions
    • Idris.Colours
    • Idris.Completion
    • Core
      • Idris.Core.CaseTree
      • Idris.Core.Constraints
      • Idris.Core.DeepSeq
      • Idris.Core.Elaborate
      • Idris.Core.Evaluate
      • Idris.Core.Execute
      • Idris.Core.ProofState
      • Idris.Core.TC
      • Idris.Core.TT
      • Idris.Core.Typecheck
      • Idris.Core.Unify
    • Idris.Coverage
    • Idris.DSL
    • Idris.DataOpts
    • Idris.DeepSeq
    • Idris.Delaborate
    • Idris.Docs
    • Idris.Docstrings
    • Idris.ElabDecls
    • Idris.ElabTerm
    • Idris.Erasure
    • Idris.ErrReverse
    • Idris.Error
    • Idris.Help
    • Idris.IBC
    • Idris.IdeSlave
    • Idris.IdrisDoc
    • Idris.Imports
    • Idris.Inliner
    • Idris.Interactive
    • Idris.Output
    • Idris.ParseData
    • Idris.ParseExpr
    • Idris.ParseHelpers
    • Idris.ParseOps
    • Idris.Parser
    • Idris.PartialEval
    • Idris.Primitives
    • Idris.ProofSearch
    • Idris.Prover
    • Idris.Providers
    • Idris.REPL
    • Idris.REPLParser
    • Idris.Transforms
    • Idris.TypeSearch
    • Idris.Unlit
    • Idris.WhoCalls
  • Pkg
    • Pkg.Package
  • Util
    • Util.DynamicLinker
    • Util.ScreenSize

Flags

Manual Flags

NameDescriptionDefault
llvm

Build the LLVM backend

Disabled
ffi

Build support for libffi

Disabled
gmp

Use GMP for Integers

Disabled
curses

Use Curses to get the screen width

Disabled
release

This is an official release

Enabled

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

Downloads

Versions [RSS] 0.1.3, 0.1.3.1, 0.1.4, 0.1.5, 0.1.7, 0.1.7.1, 0.9.0, 0.9.1, 0.9.2, 0.9.2.1, 0.9.3, 0.9.3.1, 0.9.4, 0.9.4.1, 0.9.5, 0.9.5.1, 0.9.6, 0.9.6.1, 0.9.7, 0.9.8, 0.9.9, 0.9.9.1, 0.9.9.2, 0.9.9.3, 0.9.10, 0.9.10.1, 0.9.11, 0.9.11.1, 0.9.11.2, 0.9.12, 0.9.13, 0.9.13.1, 0.9.14, 0.9.14.1, 0.9.14.2, 0.9.14.3, 0.9.15, 0.9.15.1, 0.9.16, 0.9.17, 0.9.17.1, 0.9.18, 0.9.18.1, 0.9.19, 0.9.19.1, 0.9.20, 0.9.20.1, 0.9.20.2, 0.10, 0.10.1, 0.10.2, 0.10.3, 0.11, 0.11.1, 0.11.2, 0.12, 0.12.1, 0.12.2, 0.12.3, 0.99, 0.99.1, 0.99.2, 1.0, 1.1.0, 1.1.1, 1.2.0, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4
Dependencies annotated-wl-pprint (>=0.5.3), ansi-terminal, ansi-wl-pprint, base (>=4 && <5), binary, blaze-html (>=0.6.1.3), blaze-markup (>=0.5.2.1 && <0.7.0.0), bytestring, Cabal, cheapskate, containers (>=0.5), deepseq, directory (>=1.2), filepath, haskeline (>=0.7), idris, language-java (>=0.2.6), lens (>=4.1.1), mtl, network, optparse-applicative, parsers (>=0.9 && <0.11.0.2), pretty, process, split, text, time (>=1.4), transformers, trifecta (>=1.1), unix, unordered-containers, utf8-string, vector, vector-binary-instances, Win32, xml, zlib [details]
License BSD-3-Clause
Author Edwin Brady
Maintainer Edwin Brady <eb@cs.st-andrews.ac.uk>
Category Compilers/Interpreters, Dependent Types
Home page http://www.idris-lang.org/
Source repo head: git clone git://github.com/idris-lang/Idris-dev.git
Uploaded by EdwinBrady at 2014-06-03T23:56:38Z
Distributions Arch:1.3.4, Fedora:1.3.4, NixOS:1.3.4
Executables idris
Downloads 66465 total (149 in the last 30 days)
Rating 2.25 (votes: 2) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs not available [build log]
All reported builds failed as of 2016-12-14 [all 7 reports]