Model HList package został oparty na technologii Haskell starożytnej. Proste pytanie brzmi: biorąc pod uwagę wszystkie wspaniałe nowe cechy rozwoju Haskell/GHC ostatnich 8 lat, czy "nowoczesna" HList byłaby zbudowana inaczej? Zdaję sobie sprawę, że odpowiedź tutaj może być no, że dla konkretnego przypadku HList zastosowana technologia nadal daje najbardziej eleganckie rozwiązanie."Nowoczesne" HList?
Przeczytałem wiele pozycji udokumentowanych na stronie extensible records, jedynym rzeczywistym konkurentem (tj. Takim, który jest zaimplementowany jako biblioteka dostępna w hakowaniu) jest records package. A może brakuje linków z extensible records?
Właśnie omawiałem relację między soczewkami a rozszerzalnymi zapisami z Russellem (O'Connorem) właśnie dziś rano - i nie jest to jasne. Obiektywy są świetne do abstrakcyjnego pobierania/zestawienia pojedynczego pola w agregacie, ale mniej dobrze reprezentują sam agregat. W każdym razie wydaje mi się, że powinienem trzymać się HList (na razie), a następnie spróbować znaleźć, które z zionów wariantu I powinienem wybrać, by poradzić sobie z danym problemem (co tłumaczy jakiś kod O'Camla, który używa polimorficznego warianty I typy rzędów AND Funktory w Haskell). –
Zrobiłem ostatnio coś inspirowanego przez HList: biorąc pod uwagę rzecz zależną od typu (TIP) i {program obsługi jednego z przypadków} ona zwraca {wynik obsługi) lub {TIP o mniejszym typie} . Łączenie łańcuchów razem z> => zmniejszało wielkość TIP dla każdego przypadku. W tamtym czasie pomyślałem, że to rodzaj symulowanego wzoru pasującego do odmian polimorficznych. –