Tagless interpreters for well-typed terms in some object language are a standard example of the power and benefit of precise indexing in types, whether with dependent types, or generalized algebraic datatypes. The key is to reflect object language types as indices (however they may be constituted) for the term datatype in the host language, so that host type coincidence ensures object type coincidence. Whilst this technique is widespread for simply typed object languages, dependent types have proved a tougher nut with nontrivial computation in type equality. In their type-safe representations, Danielsson [2006] and Chapman [2009] succeed in capturing the equality rules, but at the cost of representing equality derivations explicitly within ...
Generic object-oriented programming languages combine parametric polymorphism and nominal subtype po...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
Generic programming is about making programs more widely applicable via exotic kinds of parametrizat...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
Language designers have in recent years proposed a wealth of richer type systems for programming whi...
A definitional interpreter defines the semantics of an object language in terms of the (well-known) ...
The definition of type equivalence is one of the most important design issues for any typed language...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Modern dependently typed functional programming languages like Agda allow very specific restrictions...
This dissertation defends the idea of a closed dependent type theory whose inductive types are encod...
Modern programming languages rely on advanced type systems that detect errors at compile-time. While...
Most existing programming languages provide little support to formally state and prove properties ab...
Datatype-generic programming makes it possible to define a construction once and apply it to a large...
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is ...
Dependently typed languages such as Coq and Agda can statically guarantee the correctness of our pro...
Generic object-oriented programming languages combine parametric polymorphism and nominal subtype po...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
Generic programming is about making programs more widely applicable via exotic kinds of parametrizat...
Tagless interpreters for well-typed terms in some object language are a standard example of the powe...
Language designers have in recent years proposed a wealth of richer type systems for programming whi...
A definitional interpreter defines the semantics of an object language in terms of the (well-known) ...
The definition of type equivalence is one of the most important design issues for any typed language...
Dependently typed programming languages allow the type system to express arbitrary propositions of i...
Modern dependently typed functional programming languages like Agda allow very specific restrictions...
This dissertation defends the idea of a closed dependent type theory whose inductive types are encod...
Modern programming languages rely on advanced type systems that detect errors at compile-time. While...
Most existing programming languages provide little support to formally state and prove properties ab...
Datatype-generic programming makes it possible to define a construction once and apply it to a large...
The mechanism for declaring datatypes in functional programming languages such as ML and Haskell is ...
Dependently typed languages such as Coq and Agda can statically guarantee the correctness of our pro...
Generic object-oriented programming languages combine parametric polymorphism and nominal subtype po...
Abstract. Programming languages often include specialized syntax for com-mon datatypes (e.g. lists) ...
Generic programming is about making programs more widely applicable via exotic kinds of parametrizat...