pub fn partial_session_2<A1, A2, B, F>(
    cont: impl FnOnce(Z, S<Z>) -> PartialSession<(A1, (A2, ())), B>
) -> PartialSession<(A1, (A2, ())), B> where
    A1: Slot,
    A2: Slot,
    B: Protocol