public static OptionAsync <A> flatten <A>(OptionAsync <OptionAsync <A> > ma) => ma.Bind(identity);
public static OptionAsync <R> bind <T, R>(OptionAsync <T> ma, Func <T, OptionAsync <R> > binder) => ma.Bind(binder);