pub fn step<C, A>(
    cont1: impl Future<Output = PartialSession<C, A>> + Send + 'static
) -> PartialSession<C, A> where
    C: Context,
    A: Protocol