pub fn wait<N, C, A>(
    _: N,
    cont: PartialSession<N::Target, A>
) -> PartialSession<C, A> where
    C: Context,
    A: Protocol,
    N: ContextLens<C, End, Empty>,