Cayenne*

Hotter than Haskell

Cayenne is a simple(?) functional language with a powerful type system. The basic types are functions, products, and sums. Functions and products use dependent types to gain additional power.

There are very few building blocks in the language, but a lot of "syntactic sugar" to make it more readable.

There is no separate module language in Cayenne since the dependent types allow the normal expression language to be used at the module level as well.

The design of Cayenne has been heavily influenced by Haskell and constructive type theory and with some things borrowed from Java.

The drawback of such a powerful type system is that the type checking becomes undecidable.

Documentation

Implementation

Getting Cayenne

A paper on Cayenne

A paper on writing an interpreter in Cayenne

A short note on equality proofs in Cayenne


* Thanks to Jessica for suggesting the name Cayenne, finding the cool GIFs, and helping with HTML.
Lennart Augustsson
Last modified: Wed Mar 31 21:57:00 CEST 1999