No abstract available.
Proceeding Downloads
How to do proofs: practically proving properties about effectful programs' results (functional pearl)
Dependently-typed languages are great for stating and proving properties of pure functions. We can reason about them modularly (state and prove their properties independently of other functions) and non-intrusively (without modifying their ...
Generic level polymorphic n-ary functions
Agda's standard library struggles in various places with n-ary functions and relations. It introduces congruence and substitution operators for functions of arities one and two, and provides users with convenient combinators for manipulating indexed ...
Deferring the details and deriving programs
A commonly-used technique in dependently-typed programming is to encode invariants about a data structure into its type, thus ensuring that the data structure is correct by construction. Unfortunately, this often necessitates the embedding of explicit ...
Tic tac types: a gentle introduction to dependently typed programming (functional pearl)
Tic-Tac-Toe is a simple, familiar, classic game enjoyed by many. This pearl is designed to give a flavour of the world of dependent types to the uninitiated functional programmer. We cover a journey from Tic-Tac-Terrible implementations in the harsh ...
Inductive types deconstructed: the calculus of united constructions
Algebraic data types and inductive types like those of the Calculus of Inductive Constructions (CIC) are the bread and butter of statically typed functional programming languages. They conveniently combine in a single package product types, sum types, ...
Constraint-based type-directed program synthesis
We explore an approach to type-directed program synthesis rooted in constraint-based type inference techniques. By doing this, we aim to more efficiently synthesize polymorphic code while also tackling advanced typing features such as GADTs that build ...
Index Terms
- Proceedings of the 4th ACM SIGPLAN International Workshop on Type-Driven Development