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