Publication View

Typed Contracts for Functional Programming (2006)

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-bycontract approach extensively. Proposals for language extensions that add contracts to higher-order functional programming have appeared recently. In this paper we 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, and we show how to define a generic contract combinator for arbitrary algebraic data types. The contract language is implemented as a library in Haskell using the concept of generalised algebraic data types.

Publication details
Download http://igitur-archive.library.uu.nl/math/2007-0328-200546/UUindex.html
Publisher Springer-Verlag
Repository DSpace at Utrecht University (Netherlands)
Keywords Wiskunde en Informatica
Type Preprint
Language Englisch