pub fn shared_forward<A1, A2, C>(
    channel: SharedChannel<LinearToShared<A1>>
) -> PartialSession<(Lock<A1>, C), SharedToLinear<LinearToShared<A1>>> where
    A1: Protocol,
    A2: Protocol,
    A1: SharedRecApp<SharedToLinear<LinearToShared<A1>>, Applied = A2>,
    C: EmptyContext