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.
Author supplied keywords
Cite
CITATION STYLE
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.