Functor t is a mapping between source and target categories, a and o are objects of morphisms - contrA-variantly and cO-variantly positioned accordingly. I'm going to provide both Yonedified and canonical forms of mappings so that you can match them:
Examples: we can map Maybe parameter regardless its existense:
Examples: we can map World parameter regardless its readiness:
Challenge: We can map List/Tree parameter regardless of what?
What we saw above is mapping of so called flat morphisms - it's not an established term, I just came with it as a contrary to lax Kleisli ones. Kleisli are categories that naturally assosiated with monads so that you have a way to compose them.
Okay, forget about monads for now. What if we try to map such a Kleisli-shaped source morphism using a mapping of an ordinary covariant functor? Well, nothing! It's just got mapped as it is:
But we often don't want to map it "as it is". There is a way for a functor t to absorb functor tt with some natural transformation:
By composing a functor t mapping and this family of natural transformations we get a powerful operator. Note the shape of this glyph - it looks like a hook signifying that some sprouted functor tt was integrated into functor t:
Examples: we can map Maybe parameter considering its existense:
Examples: we can map World parameter considering its readiness:
Examples: we can map World parameter considering its readiness and existence:
So far we have seen only mapping of source Kleisli morphisms, but can we get those at target category as well? Yes!
We do it in similar way - map over functor t and then apply another family of natural transformations for swapping functors t and tt:
Examples: we can map Maybe parameter regardless its existense:
Bootcamp: if you want to try to use these operators on practice including their compositions, consider solving exercises at bootcamp.