An auxiliary list of awesome Idris resources.
Idris is a general purpose pure functional programming language with dependent types. 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. It is compiled, with eager evaluation. Its features are influenced by Haskell and ML.
- 10 things Idris improved over Haskell
- Meet Idris, a language that will change the way you think about programming
- Tests vs. Types
- Type Driven Development With Idris – Most important book published so far.
- Type Theory and Functional Programming
- Programming in Martin-Löf’s Type Theory
- Software Foundations – Repo is here.
- Gentle Introduction to Dependent Types with Idris
- Elaborator Reflection: Extending Idris in Idris – David Christiansen and Edwin Brady, 2016.
- Cross-platform Compilers for Functional Languages – Edwin Brady, 2015.
- Programming and Reasoning with Side-Effects in Idris – Edwin Brady, 2014.
- Idris, a General Purpose Dependently Typed Programming Language: Design and Implementation – Edwin Brady, 2013.
- Programming and Reasoning with Algebraic Effects and Dependent Types – Edwin Brady, 2013.
- Sequential decision problems, dependently typed solutions – Nicola Botta, Cezar Ionescu and Edwin Brady, 2013.
- Programming in Idris: a tutorial – Edwin Brady, 2012.
- Idris — Systems Programming Meets Full Dependent Types – Edwin Brady, 2011.
- Scrapping your Inefficient Engine: using Partial Evaluation to Improve Domain-Specific Language Implementation – Edwin Brady and Kevin Hammond, 2010.
- Correct-by-Construction Concurrency: using Dependent Types to Verify Implementations of Effectful Resource Usage Protocols – Edwin Brady and Kevin Hammond, 2010.
- Domain Specific Languages (DSLs) for Network Protocols – Saleem Bhatti, Edwin Brady, Kevin Hammond and James McKinna, 2009.
- Lightweight Invariants with Full Dependent Types – Edwin Brady, Christoph Herrmann and Kevin Hammond, 2008.
- Idris: General Purpose Programming with Dependent Types – Presentation by Edwin Brady, Idris’ creator.
- GitHub’s trending Idris repos
- iridium – xmonad with the X11 abstracted and configured with Idris.
- lightyear – Parser combinators for Idris.
- quantities Type-safe physical computations and unit conversions in Idris.
- idris-type-providers – Type provider library for Idris.
- idris-containers – Various data structures for use in the Idris Language.
- IdrisSqlite – Effectful bindings for SQLite.
- idris-http – HTTP library for Idris.
- RingIdris – Ring solver for Idris.
- specdris – Test framework for Idris.
- idris-config – Parsers for various configuration files written in Idris.
- probability – Probabilistic computation in Idris.
- idris-protobuf – Partial implementation of Protocol Buffers in Idris.
- idris-free – Free Monads and useful constructions to work with them.
- idris-ct – Formally verified category theory library
- typedefs – Programming language-agnostic, algebraic data type definition language
- idris-jvm – JVM bytecode backend for Idris.
- idris-llvm – LLVM backend.
- idris-erlang – Erlang backend.
- idris-malfunction – Experimental Malfunction (OCaml internal representation) backend.
Build tools | Package managers
- Idris Rules – Idris rules for Bazel
- Ikan – A package manager for idris, in idris
- Elba – A package manager for Idris
- idream – A simple build system for Idris