pub fn send_channel_to_session<N, C1, C2, C3, C4, C5, A, B>(
n: N,
session: PartialSession<(), ReceiveChannel<A, End>>,
cont: PartialSession<C5, B>
) -> PartialSession<C1, B> where
C1: Context + AppendContext<(ReceiveChannel<A, End>, ()), Appended = C2>,
C2: Context,
C3: Context,
C4: Context,
C5: Context,
A: Protocol,
B: Protocol,
N: ContextLens<C2, A, Empty, Target = C3>,
<C1 as Context>::Length: ContextLens<C3, ReceiveChannel<A, End>, End>,
<C1 as Context>::Length: ContextLens<C4, End, Empty>,
<<C1 as Context>::Length as ContextLens<C3, ReceiveChannel<A, End>, End>>::Target == C4,
<<C1 as Context>::Length as ContextLens<C4, End, Empty>>::Target == C5,