pub fn case<N, C1, C2, B, Row1, Row2>(
    _: N,
    cont1: impl for<'r> FnOnce(AppSum<'r, Row2, ContF<'r, N, C2, B>>) -> ChoiceRet<'r, N, C2, B> + Send + 'static
) -> PartialSession<C1, B> where
    B: Protocol,
    C1: Context,
    C2: Context,
    Row1: Send + 'static,
    Row2: Send + 'static,
    Row1: ToRow<Row = Row2>,
    N: ContextLens<C1, InternalChoice<Row1>, Empty, Target = C2>,
    Row2: SumFunctor