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 _