W pewnym sensie jest to krok wstecz w stosunku do mojego wcześniejszego pytania, ale ... Czy ktoś może mi przypomnieć, dlaczego ten nie działa?Typy elementów kontenera
class Container c e where empty :: c insert :: e -> c -> c instance Container [x] x where empty = [] insert = (:) instance Container ByteString Word8 where empty = BIN.empty insert = BIN.cons instance Ord x => Container (Set x) x where empty = SET.empty insert = SET.insert
Oczywiście, gdyby to było tak proste, nikt nie chciałby wymyślić zależności funkcjonalnych ani powiązanych typów. Więc jaki jest problem z powyższym?
Spróbuj go użyć. Wkrótce dostaniesz skargi na niejednoznaczne przeciążanie. – augustss