pub fn wait_session<I, P>(
    session1: PartialSession<(), End>,
    cont: PartialSession<I, P>
) -> PartialSession<I, P> where
    P: Protocol,
    I: Context + AppendContext<(End, ())> + AppendContext<(Empty, ())>,
    <I as Context>::Length: ContextLens<<I as AppendContext<(End, ())>>::Appended, End, Empty>,
    <<I as Context>::Length as ContextLens<<I as AppendContext<(End, ())>>::Appended, End, Empty>>::Target == <I as AppendContext<(Empty, ())>>::Appended