pub fn receive_channel_from<C1, C2, C3, N, M, A1, A2, B>(
    _n: N,
    cont1: impl FnOnce(M) -> PartialSession<C3, B>
) -> PartialSession<C1, B> where
    A1: Protocol,
    A2: Protocol,
    B: Protocol,
    C1: Context<Length = M>,
    C2: AppendContext<(A1, ()), Appended = C3>,
    C3: Context,
    N: ContextLens<C1, SendChannel<A1, A2>, A2, Target = C2>,
    M: Nat