pub trait Prism<Row> where
Row: RowCon, {
type Elem;
fn inject_elem<'a, F>(elem: App<'a, F, Self::Elem>) -> AppSum<'a, Row, F>
where
F: 'a + Send + TyCon,
Row: 'a;
fn extract_elem<'a, F>(
row: AppSum<'a, Row, F>
) -> Option<App<'a, F, Self::Elem>>
where
F: 'a + Send + TyCon,
Row: 'a;
}