We introduce the notion of containers as a mathematical formalisation of the idea that many important datatypes consist of templates where data is stored. We show that containers have good closure… Expand

A definition of untyped λ-terms using a heterogeneous datatype is presented, i.e. an inductively defined operator can be extended to a Kleisli triple, which is a concise way to verify the substitution laws forλ-calculus.Expand

A generalization of monads is introduced, called relative monads, allowing for underlying functors between different categories, and it is shown that the Kleisli and Eilenberg-Moore constructions carry over to relative monad and are related to relative adjunctions.Expand

The new proposal simplifies Altenkirch's construction of a setoid-model for a system with canonicity and extensionality on top of an intensional type theory with proof-irrelevant propositions by adopting McBride's heterogeneous approach to equality.Expand

It is shown how higher kinded generic programming can be represented faithfully within a dependently typed programming system using the Oleg system.Expand

The formalisation of type theory avoids referring to preterms or a typability relation but defines directly well typed objects by an inductive definition and uses the elimination principle to define the set-theoretic and logical predicate interpretation.Expand

We show that the syntactically rich notion of inductive families can be reduced to a core type theory with a fixed number of type constructors exploiting the novel notion of indexed containers.… Expand

This method is based on the semantic technique known as "normalization by evaluation", and involves inverting the interpretation of the syntax in a suitable sheaf model and extracting an appropriate unique normal form from this.Expand