diff --git a/theories/proofmode/classes.v b/theories/proofmode/classes.v
index 32b0d168cff9f5eed06ef606ae1930a19900bc50..acef2f557eaa54b25e517d41736ef37700d32c74 100644
--- a/theories/proofmode/classes.v
+++ b/theories/proofmode/classes.v
@@ -389,10 +389,15 @@ Instance maybe_frame_default {PROP : bi} (R P : PROP) :
   TCOr (Affine R) (Absorbing P) → MaybeFrame false R P P false | 100.
 Proof. intros. rewrite /MaybeFrame /=. apply: sep_elim_r. Qed.
 
-(* For each of the [MakeXxxx] class, there is a [KnownMakeXxxx] variant,
-   that only succeeds if the parameter(s) is not an evar. In the case
-   the parameter(s) is an evar, then [MakeXxxx] will not instantiate
-   it arbitrarily. *)
+(* For each of the [MakeXxxx] class, there is a [KnownMakeXxxx]
+   variant, that only succeeds if the parameter(s) is not an evar. In
+   the case the parameter(s) is an evar, then [MakeXxxx] will not
+   instantiate it arbitrarily.
+
+   The reason for this is that if given an evar, these typeclasses
+   would typically try to instantiate this evar with some arbitrary
+   logical constructs such as emp or True. Therefore, we use an Hint
+   Mode to disable all the instances that would have this behavior. *)
 Class MakeEmbed `{BiEmbedding PROP PROP'} (P : PROP) (Q : PROP') :=
   make_embed : ⎡P⎤ ⊣⊢ Q.
 Arguments MakeEmbed {_ _ _ _} _%I _%I.