Cayenne - A language with dependent types

30Citations
Citations of this article
5Readers
Mendeley users who have this article in their library.

Abstract

Cayenne is a Haskell-like language. The main difference between Haskell and Cayenne is that Cayenne has dependent types, i.e., the result type of a function may depend on the argument value, and types of record components (which can be types or values) may depend on other components. Cayenne also combines the syntactic categories for value expressions and type expressions; thus reducing the number of language concepts. Having dependent types and combined type and value expressions makes the language very powerful. It is powerful enough that a special module concept is unnecessary; ordinary records suffice. It is also powerful enough to encode predicate logic at the type level, allowing types to be used as specifications of programs. However, this power comes at a cost: type checking of Cayenne is undecidable. While this may appear to be a steep price to pay, it seems to work well in practice. © 1998 ACM.

Cite

CITATION STYLE

APA

Augustsson, L. (1999). Cayenne - A language with dependent types. SIGPLAN Notices (ACM Special Interest Group on Programming Languages), 34(1), 239–249. https://doi.org/10.1145/291251.289451

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free