
3 Mar
2016
3 Mar
'16
1:10 p.m.
I'm having trouble understanding this:
IIUC, one would describe fmap as "lifting" a function g into a functor f, in the sense of
Functor f => (g a b) -> g a -> g b
Is there an inverse concept (? co-lift ?) that describes
Functor f => (g a -> g b) -> a -> b
It seems like these are type declarations for functions, with class constraints that say f must be a Functor, but then f doesn't appear anywhere else in the declaration. Why is this? Thanks, -Ben