sourceimpl<R, Row1, Row2, Row3> RecApp<R> for ExternalChoice<Row1> where
    R: Send + 'static,
    Row2: RowCon,
    Row1: Send + 'static,
    Row1: ToRow<Row = Row2>,
    Row2: RecApp<R, Applied = Row3>,
    Row3: RowCon, 
sourceimpl<Row1, Row2, Row3, A> RecApp<A> for InternalChoice<Row1> where
    A: Send + 'static,
    Row1: Send + 'static,
    Row1: ToRow<Row = Row2>,
    Row2: RowCon,
    Row2: RecApp<A, Applied = Row3>,
    Row3: RowCon,