×

Dependent ML an approach to practical programming with dependent types. (English) Zbl 1125.68033

Summary: We present an approach to enriching the type system of ML with a restricted form of dependent types, where type index terms are required to be drawn from a given type index language \(\mathcal L\) that is completely separate from run-time programs, leading to the DML(\(\mathcal L\)) language schema. This enrichment allows for specification and inference of significantly more precise type information, facilitating program error detection and compiler optimization. The primary contribution of the paper lies in our language design, which can effectively support the use of dependent types in practical programming. In particular, this design makes it both natural and straightforward to accommodate dependent types in the presence of effects such as references and exceptions.

MSC:

68N18 Functional programming and lambda calculus
68N15 Theory of programming languages

Software:

Coq; Cayenne; ETPS
Full Text: DOI