Title of article :
Cayenne - a language with dependent types
Author/Authors :
Augustsson، Lennart نويسنده ,
Issue Information :
روزنامه با شماره پیاپی سال 1999
Abstract :
We present a subtyping extension to the Hindley/Milner type system that is based on name inequivalence. This approach allows the subtype relation to be defined by incremental construction of polymorphic records and datatypes, in a way that subsumes the basic type systems of both languages like ML and Java. As the main contribution of the paper, we describe a partial type inference algorithm for the extended system which favours succinctness over generality, in the sense that it never infers types with subtype constraints. The algorithm is based on an efficient approximating constraint solver, and is able to type a wide range of programs that utilize subtyping and polymorphism in a non-trivial way. Since constrained types are not inferred, the algorithm cannot be complete; however, we provide a completeness result w. r. t. the Hindley/Milner type system as a form of characterizing lower bound.
Keywords :
language design , dependent types , module systems , Type systems
Journal title :
A C M Sigplan (Programming Languages) Sigplan Notices
Journal title :
A C M Sigplan (Programming Languages) Sigplan Notices