public static TryAsync <T> product <NUM, T>(TryAsync <T> lhs, TryAsync <T> rhs) where NUM : struct, Num <T> => lhs.Product <NUM, T>(rhs);