Abstract

Software contracts provide a mechanism for programmers to safely provide libraries and quickly pinpoint program errors by specifying certain conditions for variables, function calls, and even lists. A number of features and extensions have been developed for the field, such as lazy and semi-eager contracts. Each of these systems contribute a new mechanism for contract implementation and evaluation, providing a number of unique approaches to contract enforcement. However, most current contract systems make use of only one of these systems, providing only those specific advantages and limitations. This talk will present a hybrid system that hopes to provide contract writers with enough power to take advantage of each system while avoiding their limitations.