Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network

  Advanced Search  

Why Dependent Types Matter Thorsten Altenkirch Conor McBride

Summary: Why Dependent Types Matter
Thorsten Altenkirch Conor McBride
The University of Nottingham
James McKinna
The University of St Andrews
We exhibit the rationale behind the design of Epigram, a dependently typed programming language and
interactive program development system, using refinements of a well known program--merge sort--as a
running example. We discuss its relationship with other proposals to introduce aspects of dependent types into
functional programming languages and sketch some topics for further work in this area.
1. Introduction
Types matter. That's what they're for--to classify data with respect to criteria which matter: how they should
be stored in memory, whether they can be safely passed as inputs to a given operation, even who is allowed to
see them. Dependent types are types expressed in terms of data, explicitly relating their inhabitants to that data.
As such, they enable you to express more of what matters about data. While conventional type systems allow
us to validate our programs with respect to a fixed set of criteria, dependent types are much more flexible, they
realize a continuum of precision from the basic assertions we are used to expect from types up to a complete
specification of the program's behaviour. It is the programmer's choice to what degree he wants to exploit the


Source: Altenkirch, Thorsten - School of Computer Science, University of Nottingham


Collections: Computer Technologies and Information Sciences