Czy ktoś mógłby wyjaśnić różnicę między typami zależnymi a typami wyrafinowania? W moim rozumieniu typ uściślenia zawiera wszystkie wartości typu spełniającego predykat. Czy istnieje cecha typów zależnych, która je odróżnia?
Jeśli to pomoże, natknąłem się na typy rafinowane za pośrednictwem projektu Liquid Haskell, a typy zależne za pośrednictwem Coq i Agdy. To powiedziawszy, szukam wyjaśnienia różnic między teoriami.