ho letto un article che diceva:Quale funzionalità si ottiene gratuitamente con Functors o altre classi di tipi?
Fornire le istanze per i molti tipo-classi standard [Funtori] immediatamente vi darà un sacco di funzionalità per praticamente esenti
La mia domanda è: qual è questa funzionalità che si ottiene gratuitamente (per funtori o altre classi di tipi)? So qual è la definizione di un functor, ma cosa ottengo per libero definendo qualcosa come un functor/altra classe di tipo. Qualcosa di diverso da una sintassi più carina. Idealmente questo sarebbe funzioni generali e utili che operano su funtori/altre classi di tipi.
La mia immaginazione (potrebbe essere sbagliato) di ciò che significa libero è le funzioni di questo tipo: TypeClass x => useful x y = ..
== Modifica/Additition ==
Credo di essere principalmente chiedendo il più astratto (e cervello incredibile) classi di tipo, come quelli in this image. Per le classi meno astratte come Ord, la mia intuizione orientata agli oggetti comprende.
'guardia' richiede' MonadPlus'. –
@DanielFischer: Oops. Buon punto –
Dal momento che sembra esserci una manciata di tali funzioni di libreria, anche per Monade che è una classe di caratteri piuttosto ricca, direi che è improbabile che accada. È _eticamente possibile che il tuo codice possa magicamente generalizzare a tutte le monadi, ma praticamente se esistessero, vedrei molte più funzioni utili gratuitamente per le monadi. – user1138184