Se scopro che qualcosa è un Monoid
o Monad
, ottengo tutto per utilizzare tutti i tipi di funzioni divertenti, come foldMap
, sequence
o anche mapM
. Mi rendono feliceA cosa serve Control.Category?
Cosa ottengo se scopro che qualcosa è un Category
? Ottengo qualcosa di divertente oltre a sovraccaricare id
e (.)
?
Come per tutte le astrazioni, c'è un compromesso: o puoi fare un sacco di cose con loro, o scopri che molte cose sono esempi di esse. Le categorie vanno il più lontano possibile verso il "sacco di cose sono esempi di loro" lato del compromesso: dannatamente vicino a ogni idea matematica ha una categoria sottostante. Il prezzo che si paga per la terminologia comune tra tutte queste idee è che il semplice fatto di chiamare una categoria non fornisce molte informazioni. Se vuoi di più, devi aggirare gli aggettivi sulla parola: "categoria chiusa cartesion", o "categoria monoidale intrecciata", ecc. –