Precedence: 6

`yokl` - [Y]oneda c[O]variant [K]eisli K[L]eisli

How to read: modify argument covariantly with a Kleisli morphism and get a Kleisli morphism back.

It looks similar to yok but here we have Kleisli morphism both in source and target categories.

`yokl` : t a `AR_` into (from a (tt o)) (tt (t o))

This operator is useful for traversing structures:

Some _ `yokl` Try `ha` Check `ha` Some ===> Some (Some _)
Some _ `yokl` Try `ha` Check `ha` None ===> None _
None _ `yokl` Try `ha` Check `ha` Some ===> None _
None _ `yokl` Try `ha` Check `ha` None ===> None _

Behaviour is similar to traverse method in vanilla Haskell.

If you want to ignore a handling argument, use yukl instead.

Some _ `yukl` Try `ha` Check `ha` Some `hv` Unit ===> Some (Some _)
Some _ `yukl` Try `ha` Check `ha` None `hv` Unit ===> None _
None _ `yukl` Try `ha` Check `ha` Some `hv` Unit ===> None _
None _ `yukl` Try `ha` Check `ha` None `hv` Unit ===> None _