public static async Task <Session <S, E, P> > Sync <S, E, P>(this Session <S, E, P> session) where S : SessionType where E : SessionStack where P : ProtocolType { if (session is null) { throw new ArgumentNullException(nameof(session)); } session.CallSimply(); await session.AwaitLastTask(); return(session.Duplicate()); }