One way to improve software reliability is to detect errors early and report them precisely during program development; the use of contracts is one approach to software verification. A desired property of an expression is specified with a contract. A contract language should create an informative error message to report the violation and the violator when a contract fails. In this book, a contract language is introduced and implemented for three libraries and also for some practical functions of the functional language Feldspar. Feldspar is a domain specific language (DSL) for Digital Signal Processing, embedded in Haskell, and generating C code.Contract checking can be done statically or dynamically. Static checking concentrates on complete checking of limited specifications at compile time. Dynamic checking focuses on incomplete checking of expressive specifications, and detects errors during run time. Contracts that are written in this thesis are checked with a dynamic contract checker. Furthermore, they are tested with QuickCheck, to ensure that contracts satisfy given properties. The result of these tests shows that the contracts hold their properties.