diff --git a/grudge/symbolic/compiler.py b/grudge/symbolic/compiler.py
index cfbec3c3d7e41e7045bf9c8d157a8312e5821b27..d1b186e2cf8044c8e727fe3e607d5e145af75530 100644
--- a/grudge/symbolic/compiler.py
+++ b/grudge/symbolic/compiler.py
@@ -50,6 +50,15 @@ class Instruction(Record):
     def get_executor_method(self, executor):
         raise NotImplementedError
 
+    def __hash__(self):
+        return id(self)
+
+    def __eq__(self, other):
+        return self is other
+
+    def __ne__(self, other):
+        return not self.__eq__(other)
+
 
 @memoize
 def _make_dep_mapper(include_subscripts):
@@ -286,7 +295,9 @@ class FluxExchangeBatchAssign(Instruction):
 
 
 class VectorExprAssign(Assign):
-    __slots__ = ["compiled"]
+    """
+    .. attribute:: compiled
+    """
 
     def get_executor_method(self, executor):
         return executor.exec_vector_expr_assign