public static Task<Option<T>> IfNoneAsync<T>(this Option<T> option, Func<Task<Option<T>>> none)
 {
     return option
         .MatchAsync(x => Task.FromResult((Option<T>)x), none);
 }