Home

About

Advanced Search

Browse by Discipline

Scientific Societies

E-print Alerts

Add E-prints

E-print Network
FAQHELPSITE MAPCONTACT US


  Advanced Search  

 
Why Dependent Types Matter Thorsten Altenkirch Conor McBride
 

Summary: Why Dependent Types Matter
Thorsten Altenkirch Conor McBride
The University of Nottingham
{txa,ctm}@cs.nott.ac.uk
James McKinna
The University of St Andrews
james.mckinna@st-andrews.ac.uk
Abstract
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