diff --git a/barrier/barrier.v b/barrier/barrier.v
index d610b5ba38a4ea481ba1efb0c57510ad09aa2aab..9b24d5d0f659281de4720c3178127b60f97e8f21 100644
--- a/barrier/barrier.v
+++ b/barrier/barrier.v
@@ -126,20 +126,20 @@ Import barrier_proto.
 
 (** The monoids we need. *)
 (* Not bundling heapG, as it may be shared with other users. *)
-Class barrierG Σ `{heapG Σ} := BarrierG {
+Class barrierG Σ := BarrierG {
   barrier_stsG :> stsG heap_lang Σ sts;
   barrier_savedPropG :> savedPropG heap_lang Σ;
 }.
 
 Definition barrierGF : iFunctors := [stsGF sts; agreeF].
 
-Instance inGF_barrierG `{heapG Σ} `{inGF heap_lang Σ (stsGF sts)}
+Instance inGF_barrierG `{inGF heap_lang Σ (stsGF sts)}
          `{inGF heap_lang Σ agreeF} : barrierG Σ.
 Proof. split; apply _. Qed.
 
 (** Now we come to the Iris part of the proof. *)
 Section proof.
-  Context {Σ : iFunctorG} `{barrierG Σ}.
+  Context {Σ : iFunctorG} `{!heapG Σ} `{!barrierG Σ}.
   Context (N : namespace) (heapN : namespace).
 
   Local Hint Immediate i_states_closed low_states_closed : sts.