School of Computing

Practical typed lazy contracts

Olaf Chitil

In Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming (ICFP 2012). ACM, September 2012 Version with proof appendix and minor corrections.

Abstract

Until now there has been no support for specifying and enforcing contracts within a lazy functional program. That is a shame, because contracts consist of pre- and post-conditions for functions that go beyond the standard static types. This paper presents the design and implementation of a small, easy-to-use, purely functional contract library for Haskell, which, when a contract is violated, also provides more useful information than the classical blaming of one contract partner. From now on lazy functional languages can profit from the assurances in the development of correct programs that contracts provide.

Download publication 211 kbytes (PDF)

Bibtex Record

@inproceedings{3239,
author = {Olaf Chitil},
title = {Practical Typed Lazy Contracts},
month = {September},
year = {2012},
pages = {},
keywords = {purely functional, lazy, library, Haskell},
note = {Version with proof appendix and minor corrections.},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2012/3239},
    publication_type = {inproceedings},
    submission_id = {16788_1343048070},
    booktitle = {Proceedings of the 17th ACM SIGPLAN International Conference on Functional Programming (ICFP 2012)},
    publisher = {ACM},
    refereed = {yes},
}

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014