Financial and insurance contracts do not sound like promising territory for
functional programming and formal semantics, but in fact we have discovere
d that insights from programming languages bear directly on the complex sub
ject of describing and valuing a large class of 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.