public static OptionAsync<B> BindAsync<A, B>(this Option<A> self, Func<A, Task<Option<B>>> f)
 {
     return self
         .BindAsync(_ => f(_).ToAsync());
 }
 public static Task <Option <R> > bindAsync <T, R>(Option <Task <T> > self, Func <T, Task <Option <R> > > bind) =>
 self.BindAsync(bind);