diff --git a/theories/base.v b/theories/base.v index 1b4746a5a18f1cea509695bef82c9d5b15a15f13..ce3f75462b222f6655d781f736d49ceba0e3a682 100644 --- a/theories/base.v +++ b/theories/base.v @@ -146,14 +146,14 @@ Existing Instance TCElemOf_here. Existing Instance TCElemOf_further. Hint Mode TCElemOf ! ! ! : typeclass_instances. -(** Similarly to [TCForall2], we declare the modes of [TCEq x y] in both -directions, i.e., either [x] input and [y] output, or [y] input and [x] -output. *) +(** We declare both arguments [x] and [y] of [TCEq x y] as outputs, which means +[TCEq] can also be used to unify evars. This is harmless: since the only +instance of [TCEq] is [TCEq_refl] below, it can never cause loops. See +https://gitlab.mpi-sws.org/iris/iris/merge_requests/391 for a use case. *) Inductive TCEq {A} (x : A) : A → Prop := TCEq_refl : TCEq x x. Existing Class TCEq. Existing Instance TCEq_refl. -Hint Mode TCEq ! ! - : typeclass_instances. -Hint Mode TCEq ! - ! : typeclass_instances. +Hint Mode TCEq ! - - : typeclass_instances. Inductive TCDiag {A} (C : A → Prop) : A → A → Prop := | TCDiag_diag x : C x → TCDiag C x x.