pub fn fork<A, B, C1, C2>(
cont1: PartialSession<C1, A>,
cont2: PartialSession<C2, B>
) -> PartialSession<<C1 as AppendContext<C2>>::Appended, SendChannel<A, B>> where
A: Protocol,
B: Protocol,
C1: Context + AppendContext<C2>,
C2: Context,