Wiem, że Haskell ma już możliwość parametryzacji typu nad innym typem (podobnie do programowania szablonów w C ++), ale zastanawiam się, czy Haskell może również sparametryzować typ nad wartościami - czy obsługuje typy zależne. W przypadku typów zależnych można uzyskać typ sparametryzowany nad liczbami całkowitymi, na przykład wektory wielkości n, macierze wielkości n × m itp.
Jeśli nie, dlaczego nie? I czy jest jakaś możliwość, że będzie obsługiwany w przyszłości?
Aby rozwinąć nieco to, co Płomień Pthariena wyjaśnił ładnie o aktualnym statusie - i GHC Haskell wydaje się iść dalej w kierunku typów zależnych (zachowując separację faz) z każdą wersją.
Na przykład na ICFP 2013 we wrześniu należy przedstawić artykuł na temat kolejnej fazy tego procesu: „W kierunku Haskell: System FC o równej zależności z równą miłością”, o zwijaniu poziomów rodzaju i rodzaju. Zgodnie z zapowiedzią 3 lata temu .
I wspomina nawet o kolejnym kroku: „Jesteśmy również świadomi, że nadchodząca rozprawa Adama Gundry'ego obejmie typy Π w wersji System FC i będziemy chcieli udostępnić tę funkcję również w języku źródłowym. (Komunikacja osobista)”
źródło
Haskell tradycyjnie próbował go sfałszować, ale efektem końcowym jest znacznie większy i pozornie powtarzalny system typów. Ale to może się wkrótce zmienić! Widzieć:
źródło