Sự khác biệt chính là dọc theo hai chiều - trong lý thuyết cơ bản và cách chúng có thể được sử dụng. Hãy chỉ tập trung vào cái sau.
Với tư cách là người dùng, "logic" của các thông số kỹ thuật trong LiquidHaskell và các loại hệ thống sàng lọc nói chung, bị giới hạn ở các đoạn có thể quyết định để việc xác minh (và suy luận) hoàn toàn tự động, nghĩa là người ta không yêu cầu "thuật ngữ chứng minh" về loại cần thiết trong toàn bộ thiết lập phụ thuộc. Điều này dẫn đến tự động hóa đáng kể. Ví dụ, so sánh sắp xếp chèn trong LH:
http://ucsd-progsys.github.io/lh-workshop/04-case-study-insertsort.html#/ordered-lists
so với ở Idris
https://github.com/davidfstr/idris-inserts-sort/blob/master/InsertsSort.idr
Tuy nhiên, tự động hóa có giá. Người ta không thể sử dụng các hàm tùy ý làm thông số kỹ thuật như người ta có thể trong thế giới phụ thuộc hoàn toàn, điều này hạn chế lớp thuộc tính mà người ta có thể viết.
Do đó, một mục tiêu của các hệ thống sàng lọc là mở rộng lớp của những gì có thể được chỉ định, trong khi đó của các hệ thống phụ thuộc hoàn toàn là tự động hóa
những gì có thể được chứng minh. Có lẽ có một cuộc họp vui vẻ, nơi chúng ta có thể có được những điều tốt nhất của cả hai thế giới!