La documentazione per algebra/2.1.1.2/doc/html mostra un numero enorme di classi di tipi.Commutativo monoide dal pacchetto 'algebra' su Hackage
Come si dichiara che una struttura in questione deve essere dotata di un'operazione associativa commutativa e di un elemento unità/identità, ma senza nient'altro (inversioni, distribuzione ecc.)?
sto pensando di
reduce :: Monoid m => (a -> m) -> [a] -> m
ma le istanze di Data.Monoid non dovrebbero essere commutativa e voglio utenti della mia funzione di vedere che hanno bisogno commutativit'a per la funzione di lavorare guardando il genere.
Questa è la risposta giusta. –