pub fn wait_sessions<I, P>(
    sessions: Vec<PartialSession<(), End>, Global>,
    cont: PartialSession<I, P>
) -> PartialSession<I, P> where
    P: Protocol,
    I: 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