Affiliation:
1. University of Kent, Canterbury, United Kingdom
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Typed–Untyped Interactions: A Comparative Analysis;ACM Transactions on Programming Languages and Systems;2023-03-05
2. Blame and coercion: Together again for the first time;Journal of Functional Programming;2021
3. Toward efficient gradual typing for structural types via coercions;Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation;2019-06-08
4. Working with source plugins;Proceedings of the 12th ACM SIGPLAN International Symposium on Haskell - Haskell 2019;2019
5. Stateful manifest contracts;ACM SIGPLAN Notices;2017-05-11