Eiffel: the language
A Practical Approach to Programming With Assertions
IEEE Transactions on Software Engineering
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
A technique for software module specification with examples
Communications of the ACM
Contracts for higher-order functions
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
Template meta-programming for Haskell
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Computer
Fast, Error Correcting Parser Combinatiors: A Short Tutorial
SOFSEM '99 Proceedings of the 26th Conference on Current Trends in Theory and Practice of Informatics on Theory and Practice of Informatics
IFL '97 Selected Papers from the 9th International Workshop on Implementation of Functional Languages
Proceedings of the ninth ACM SIGPLAN international conference on Functional programming
Typed contracts for functional programming
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
IFL'03 Proceedings of the 15th international conference on Implementation of Functional Languages
Lazy Contract Checking for Immutable Data Structures
Implementation and Application of Functional Languages
Monadic, prompt lazy assertions in Haskell
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
A semantics for lazy assertions
Proceedings of the 20th ACM SIGPLAN workshop on Partial evaluation and program manipulation
Lazy and enforceable assertions for functional logic programs
WFLP'10 Proceedings of the 19th international conference on Functional and constraint logic programming
The interaction of contracts and laziness
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Practical typed lazy contracts
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Chaperones and impersonators: run-time support for reasonable interposition
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Assertions test expected properties of run-time values without disrupting the normal computation of a program. Here we present a library for enriching programs in the lazy language Haskell with assertions. Expected properties are written in an expressive pattern logic that combines pattern matching with logical operations and predicates. The presented assertions are lazy: they do not force evaluation but only examine what is evaluated by other parts of the program. They are also prompt: assertion failure is reported as early as possible, before a faulty value is used by the main computation.