Apply Channel
fn apply_channel<A, B>(
f: Session<ReceiveChannel<A, B>>,
a: Session<A>,
) -> Session<B>
Example:
let p1: Session<ReceiveValue<String, End>> = todo!();
let p2: Session<
ReceiveChannel<ReceiveValue<String, End>, SendValue<u64, End>>,
> = todo!();
let p3: Session<SendValue<u64, End>> = apply_channel(p2, p1);