public static CondAsync <A, B> Then <A, B>(this CondAsync <A, A> self, B value) => self.Select(_ => value);
public static CondAsync <A, B> Then <A, B>(this CondAsync <A, A> self, Func <A, Task <B> > f) => self.Select(f);
public static CondAsync <A, B> Then <A, B>(this CondAsync <A, A> self, Func <B> f) => self.Select(_ => f());