pub fn transpose<A: DProp, B: DProp, C: DProp, D: DProp>( f: Eq<Eq<A, B>, Eq<C, D>> ) -> Eq<Eq<A, C>, Eq<B, D>>
(a == b) == (c == d) => (a == c) == (b == d).
(a == b) == (c == d) => (a == c) == (b == d)