public static bool Is2 <T1, T2, T3, T4, T5, T6, T7, T8>(this IOrType <T1, T2, T3, T4, T5, T6, T7, T8> self, out T2 t2) { if (self.Possibly2() is IIsDefinately <T2> definate) { t2 = definate.Value; return(true); } t2 = default; return(false); }