https://github.com/HigherOrderCO/Kind1/blob/master/blog/1-beyond-inductive-datatypes.md#possibility-3-higher-inductive-types I saw the call for answer here: ``` UPair(A: Type): Type self(P: UPair(A) -> Type) -> (make: (a: A) -> (b: A) -> P(UPair.make(A, a,b))) -> (swap: (a: A) -> (b: A) -> Equal(_, make(a,b), make(b,a))) -> P(self) UPair.make(A: Type, a: A, b: A): UPair(A) (P, make, swap) make(a, b) ``` What happens if you use equivalence class here, not `Equal`?
https://github.com/HigherOrderCO/Kind1/blob/master/blog/1-beyond-inductive-datatypes.md#possibility-3-higher-inductive-types
I saw the call for answer here:
What happens if you use equivalence class here, not
Equal?