Ở mức độ thực tế, hợp đồng là sự khẳng định. Chúng cho phép bạn kiểm tra các thuộc tính (không định lượng) của các lần thực hiện riêng lẻ của một chương trình. Ý tưởng chính ở trung tâm của việc kiểm tra hợp đồng là ý tưởng đổ lỗi - về cơ bản, bạn muốn biết ai có lỗi vì vi phạm hợp đồng. Đây có thể là một triển khai (không tính toán giá trị mà nó đã hứa) hoặc người gọi (người đã truyền một hàm loại giá trị sai).
Cái nhìn sâu sắc quan trọng là bạn có thể theo dõi việc đổ lỗi bằng cách sử dụng cùng một máy móc như các cặp trình chiếu nhúng trong cấu trúc giới hạn nghịch đảo của lý thuyết miền. Về cơ bản, bạn chuyển từ làm việc với các xác nhận sang làm việc với các cặp xác nhận, một trong số đó đổ lỗi cho bối cảnh chương trình và một trong số đó đổ lỗi cho chương trình. Sau đó, điều này cho phép bạn bao bọc các hàm bậc cao hơn bằng các hợp đồng, bởi vì bạn có thể mô hình hóa đối chiếu của không gian hàm bằng cách hoán đổi cặp xác nhận. ( Ví dụ, xem bài viết "Hoàn tác động gõ" của Nick Benton .)
Các loại phụ thuộc là các loại. Các loại xác định các quy tắc để khẳng định liệu chương trình nhất định có được chấp nhận hay không. Kết quả là, chúng không bao gồm những thứ như khái niệm đổ lỗi, vì chức năng của chúng là ngăn chặn các chương trình hành vi xấu tồn tại ở nơi đầu tiên. Không có gì để đổ lỗi vì chỉ có các chương trình được hình thành tốt thậm chí là những phát ngôn ngữ pháp. Về mặt thực tế, điều này có nghĩa là rất dễ sử dụng các loại phụ thuộc để nói về các thuộc tính của thuật ngữ với các bộ lượng hóa (ví dụ: một hàm hoạt động cho tất cả các đầu vào).
Hai quan điểm này không giống nhau, nhưng chúng có liên quan. Về cơ bản, vấn đề là với các hợp đồng, chúng tôi bắt đầu với một miền giá trị phổ quát và sử dụng các hợp đồng để cắt giảm mọi thứ. Nhưng khi chúng tôi sử dụng các loại, chúng tôi cố gắng chỉ định các miền giá trị nhỏ hơn (với thuộc tính mong muốn) ở phía trước. Vì vậy, chúng ta có thể kết nối cả hai thông qua các họ quan hệ hướng theo kiểu (tức là quan hệ logic). Ví dụ, xem "Đổ lỗi cho tất cả" gần đây của Ahmed, Findler, Siek và Wadler , hoặc "Ý nghĩa của các loại: từ ngữ nghĩa nội tại đến ngữ nghĩa bên ngoài" .