pub fn offer_choice<C, Row1, Row2>(
    cont1: impl for<'r> FnOnce(AppSum<'r, Row2, InjectSessionF<'r, Row1, C>>) -> ContSum<'r, Row1, C> + Send + 'static
) -> PartialSession<C, ExternalChoice<Row1>> where
    C: Context,
    Row1: Send + 'static,
    Row2: Send + 'static,
    Row1: ToRow<Row = Row2>,
    Row2: RowCon,
    Row2: SumFunctor