Agda-2.3.2.2: examples/outdated-and-incorrect/tait/Chain.agda
module Chain
{A : Set}(_==_ : A -> A -> Set)
(refl : (x : A) -> x == x)
(trans : (x y z : A) -> x == y -> y == z -> x == z)
where
infix 2 chain>_
infixl 2 _===_by_
infix 1 _qed
private
data _≃_ (x y : A) : Set where
prf : x == y -> x ≃ y
chain>_ : (x : A) -> x ≃ x
chain> x = prf (refl x)
_===_by_ : {x y : A} -> x ≃ y -> (z : A) -> y == z -> x ≃ z
prf p === z by q = prf (trans _ _ _ p q)
_qed : {x y : A} -> x ≃ y -> x == y
prf p qed = p