Si descubro que algo es un Monoid
o Monad
, me sale todo para utilizar todo tipo de funciones divertidas, como foldMap
, sequence
o incluso mapM
. Ellos me hacen feliz.¿De qué sirve Control.Category?
¿Qué obtengo si descubro que algo es un Category
? ¿Obtengo algo divertido además de sobrecargar id
y (.)
?
Como con todas las abstracciones, hay una compensación: o puede hacer muchas cosas con ellas, o descubre que hay muchas cosas que son ejemplos de ellas. Las categorías van tan lejos como pueden hacia el lado "porciones de cosas son instancias de ellas": la maldición de casi todas las ideas matemáticas tiene una categoría subyacente. El precio que paga por la terminología común entre todas estas ideas es que simplemente llamar a algo una categoría no le da mucha información. Si quieres más, tienes que colgar adjetivos en la palabra: "categoría cerrada de carrito" o "categoría monoidal trenzada", etc. –