HKT<KT, A> chainFirst<B>(covariant Monad<KT, B> Function(A a) chain) => flatMap((a) => chain(a).map((b) => a));