Pada tataran praktis, kontrak adalah asersi. Mereka memungkinkan Anda memeriksa properti (bebas-kuantifikasi) dari eksekusi individual suatu program. Gagasan kunci di jantung pengecekan kontrak adalah gagasan menyalahkan - pada dasarnya, Anda ingin tahu siapa yang bersalah atas pelanggaran kontrak. Ini bisa berupa implementasi (yang tidak menghitung nilai yang dijanjikan) atau pemanggil (yang melewati fungsi semacam nilai yang salah).
Wawasan utama adalah bahwa Anda dapat melacak kesalahan menggunakan mesin yang sama dengan pasangan proyeksi-embedding dalam konstruksi batas terbalik dari teori domain. Pada dasarnya, Anda beralih dari bekerja dengan asersi ke bekerja dengan pasangan asersi, salah satunya menyalahkan konteks program dan yang lain menyalahkan program. Maka ini memungkinkan Anda membungkus fungsi tingkat tinggi dengan kontrak, karena Anda dapat memodelkan contravariance dari ruang fungsi dengan menukar pasangan asersi. (Lihat kertas Nick Benton, "Undoing Dynamic Typing" , misalnya.)
Tipe tergantung adalah tipe. Jenis menentukan aturan untuk menyatakan apakah program tertentu dapat diterima atau tidak. Akibatnya, mereka tidak memasukkan hal-hal seperti gagasan menyalahkan, karena fungsi mereka adalah untuk mencegah program yang berperilaku buruk ada sejak awal. Tidak ada yang perlu disalahkan karena hanya program yang terbentuk dengan baik yang bahkan merupakan ucapan tata bahasa. Secara pragmatis, ini berarti sangat mudah untuk menggunakan tipe dependen untuk berbicara tentang properti istilah dengan quantifiers (mis., Bahwa suatu fungsi bekerja untuk semua input).
Kedua pandangan ini tidak sama, tetapi keduanya saling terkait. Pada dasarnya, intinya adalah bahwa dengan kontrak, kita mulai dengan domain nilai universal, dan menggunakan kontrak untuk memotong segalanya. Tetapi ketika kami menggunakan tipe, kami mencoba menentukan domain nilai yang lebih kecil (dengan properti yang diinginkan) di depan. Jadi kita bisa menghubungkan keduanya melalui keluarga hubungan tipe-diarahkan (yaitu hubungan logis). Misalnya, lihat "Blame for All" karya Ahmed, Findler, Siek, dan Wadler , atau Reynolds "The The Meaning of Type: dari Intrinsik ke Semantik Ekstrinsik" .