Typed Contracts For Functional Programming
Date: 2006-03-16 Time: 11:45 Room: BBL room 471 ----+++ Speaker: [[Main.Johan Jeuring][Johan Jeuring]] ----+++ 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.