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