In un certo senso questo è un passo indietro rispetto alla mia domanda precedente, ma ... Qualcuno può ricordarmi perché questo non funziona?Tipi di elementi contenitore
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
Ovviamente se fosse così facile, nessuno avrebbe preso la briga di inventare dipendenze funzionali né tipi associati. Quindi qual è il problema con quanto sopra?
Provare ad usarlo. Presto ti lagnerai di un sovraccarico ambiguo. – augustss