HKT<KT, D> map2<C, D>(Monad<KT, C> mc, D Function(A a, C c) f) => flatMap((a) => mc.map((c) => f(a, c)));