This is a collection of software I’ve written that is available for download, mostly programming language implementations and related tools.

Research Related

Idris, a functional programming language with dependent types. Idris is a research project to create a dependently typed programming language suitable for systems programming – the emphasis is therefore on producing good compiled code and a convenient programming notation.

Epic, a library for generating compilers. Epic (the name derives from Epigram Compiler) is a compiler for a small functional language, intended as a reusable back end for high level functional languages. It is currently used as the back end for Idris as well as an experimental back end for Agda. It is ultimately intended for use by Epigram.

Available from Hackage, source code repository on GitHub. There is also an example front end language, Atuin, which implements turtle graphics.

Other

Kaya, a mostly-imperative language with static types, which is an attempt to bring some functional language features (especially algebraic data types and type inference) into a more accessible imperative language. I started writing this a few years ago mostly as an exercise in seeing-if-I-could but with the help of Durham University Computing Society it evolved into something quite useful, and I believe a few of them do use it. I don’t actively maintain it much any more, but I think with some clean up of syntax and more disciplined overloading it could be pretty useful.