Making the Contract Type Fit the Program