pub fn offer_case<N, C, A, Row1, Row2>(
    _: N,
    cont: PartialSession<C, A>
) -> PartialSession<C, InternalChoice<Row1>> where
    C: Context,
    A: Protocol,
    Row1: Send + 'static,
    Row2: Send + 'static,
    Row2: RowCon,
    Row1: ToRow<Row = Row2>,
    N: Prism<Row2, Elem = A>,