Temel farklar iki boyut boyuncadır - temel teoride ve nasıl kullanılabilecekleri. Sadece ikincisine odaklanalım.
Bir kullanıcı olarak, genel olarak LiquidHaskell ve arıtma tipi sistemlerindeki spesifikasyonların "mantığı", onaylanabilir fragmanlarla sınırlandırılmıştır, böylece doğrulama (ve sonuç) tamamen otomatiktir, yani tam olarak ihtiyaç duyulan türün "ispat terimlerini" gerektirmez. bağımlı ayar. Bu önemli otomasyona yol açar. Örneğin, LH’deki ekleme düzenini karşılaştırın:
http://ucsd-progsys.github.io/lh-workshop/04-case-study-insertsort.html#/ordered-lists
İdris'e karşı
https://github.com/davidfstr/idris-insertion-sort/blob/master/InsertionSort.idr
Ancak, otomasyonun bir bedeli var. Kişi, tamamen bağımlı olan dünyada yazabileceği özellikler sınıfını kısıtlayan, özellikler gibi keyfi işlevleri kullanamaz.
Bu nedenle, arıtma sistemlerinin bir amacı belirtilenin sınıfını genişletmek , tamamen bağımlı sistemlerin ise
kanıtlanabilecekleri otomatikleştirmektir . Belki de her iki dünyanın en iyisini alabileceğimiz mutlu bir buluşma alanı var!