public TaskOption <A> ReturnAsync(Func <Unit, Task <A> > f) => TaskOption <A> .SomeAsync(f(unit));
public TaskOption <A> SomeAsync(Task <A> taskA) => isnull(taskA) ? throw new ArgumentNullException(nameof(taskA)) : TaskOption <A> .SomeAsync(taskA);