the relationship between a class and its clients as a formal agreement, expressing each party's rights and obligations
Trammel provides a set of functions used to ease the inclusion of contracts-programming for the Clojure programming language. In addition to providing a DSL for defining functions that adhere to a specific contract, Trammel provides a way to define isolated contracts that can later be applied to existing functions at runtime. Below you will find a more information on both approaches to contracts: