pub fn partial_session<C, A>(cont: Session<A>) -> PartialSession<C, A> where
    C: EmptyContext,
    A: Protocol