arrow-mtl / arrow.mtl.extensions / CokleisliProfunctor
@extension interface CokleisliProfunctor<F> : Profunctor<Kind<ForCokleisli, F>>
open fun <A, B, C, D> CokleisliOf<F, A, B>.dimap(fl: (C) -> A, fr: (B) -> D): Cokleisli<F, C, D>