idris
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
- Core
- IRTS
- Idris
- Idris.AbsSyntax
- Idris.AbsSyntaxTree
- Idris.CaseSplit
- Idris.Chaser
- Idris.Colours
- Idris.Completion
- Idris.Coverage
- Idris.DSL
- Idris.DataOpts
- Idris.DeepSeq
- Idris.Delaborate
- Idris.Docs
- Idris.ElabDecls
- Idris.ElabTerm
- Idris.Error
- Idris.Help
- Idris.IBC
- Idris.IdeSlave
- Idris.Imports
- Idris.Inliner
- 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.Unlit
- Idris.UnusedArgs
- Main
- Paths_idris
- Pkg
- Util