Abstract
We present an approach to enriching ML’s type system with a form of dependent types, where index objects are restricted to some constraint domains C, leading to the DML(C) language schema. Pure inference for the resulting system is no longer possible, but we show that typechecking a sufficiently ann...
Main Authors: | , |
---|---|
Other Authors: | |
Format: | Text |
Language: | English |
Published: |
1997
|
Subjects: | |
Online Access: | http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.67.1857 http://www.cs.cmu.edu/~fp/papers/dml97.pdf |
Summary: | We present an approach to enriching ML’s type system with a form of dependent types, where index objects are restricted to some constraint domains C, leading to the DML(C) language schema. Pure inference for the resulting system is no longer possible, but we show that typechecking a sufficiently annotated program can be reduced to constraint satisfaction. We exhibit the unobtrusiveness of our approach through practical examples (including static array bounds checking) and prove that DML(C) is conservative over ML. The main technical contribution of the paper lies in our language design, including its elaboration and type-checking rules which make the approach practical. 1 |
---|