Eu gostaria de entender Applicative
em termos de teoria de categorias.
A documentação para Applicative
diz que é um forte monitoral relaxado .
Primeiro, a página da Wikipedia sobre functores monoidais diz que um functor monoidal é relaxado ou forte . Portanto, parece-me que uma das fontes está errada ou eles usam os termos de maneira diferente. Alguém pode explicar isso?
Segundo, quais são as categorias monoidais dos quais Applicative
são funcionadores monoidais? Suponho que os functores sejam endo-functores na categoria padrão de Haskell (objetos = tipos, morfismos = funções), mas não tenho idéia de qual é a estrutura monoidal nessa categoria.
Obrigado pela ajuda.
Functor
fmap
pure
i
pure' = \v -> fmap (\() -> v) (i ())
i :: (Applicative f) => () -> f ()