public static Task <Arr <A> > toArrayAsync <OPT, OA, A>(OA ma) where OPT : struct, OptionalAsync <OA, A> => default(OPT).Match(ma, Some : x => Arr.create(x), None : () => Arr.empty <A>());