Typed Contracts For Functional Programming
Stc
Date: 2006-03-16
Time: 11:45
Room: BBL room 471
Title: Typed Contracts for Functional Programming
Abstract
A robust software component fulfills a contract: it expects data
satisfying a certain property and promises to return data satisfying
another property. The object-oriented community uses the
design-by-contract approach extensively. Proposals for language
extensions that add contracts to higher-order functional programming
have appeared recently. In this talk I propose an embedded
domain-specific language for typed, higher-order and first-class
contracts, which is both more expressive than previous proposals, and
allows for a more informative blame assignment. We take some first
steps towards an algebra of contracts. The contract language is
implemented as a library in Haskell using the concept of generalised
algebraic data types.