Paper in PDF or
A revised and updated version of this paper appeared as How to write a financial contract, a chapter in "The Fun of Programming", ed Gibbons and de Moor, Palgrave Macmillan 2003.
Anton van Staten has a written a self-contained, well-documented Haskell library of composable contracts, which looks like a great resource if you want to try executing some contracts.
We introduce a combinator library that allows us to describe such contracts precisely, and a compositional denotational semantics that says what such contracts are worth. We sketch an implementation of our combinator library in Haskell. Interestingly, lazy evaluation plays a crucial role.