diff --git a/src/Atn/ATNConfigSet.php b/src/Atn/ATNConfigSet.php
index 319cd6b..5b196bd 100644
--- a/src/Atn/ATNConfigSet.php
+++ b/src/Atn/ATNConfigSet.php
@@ -82,32 +82,7 @@ public function __construct(bool $fullCtx = true)
          * not including context. Wiped out when we go readonly as this se
          * becomes a DFA state.
          */
-        $this->configLookup = new Set(new class implements Equivalence {
-            public function equivalent(Hashable $left, Hashable $right): bool
-            {
-                if ($left === $right) {
-                    return true;
-                }
-
-                if (!$left instanceof ATNConfig || !$right instanceof ATNConfig) {
-                    return false;
-                }
-
-                return $left->alt === $right->alt
-                    && $left->semanticContext->equals($right->semanticContext)
-                    && Equality::equals($left->state, $right->state);
-            }
-
-            public function hash(Hashable $value): int
-            {
-                return $value->hashCode();
-            }
-
-            public function equals(object $other): bool
-            {
-                return $other instanceof self;
-            }
-        });
+        $this->configLookup = new Set(new ATNEquivalence());
 
         $this->fullCtx = $fullCtx;
     }
diff --git a/src/Atn/ATNEquivalence.php b/src/Atn/ATNEquivalence.php
new file mode 100644
index 0000000..1c5c117
--- /dev/null
+++ b/src/Atn/ATNEquivalence.php
@@ -0,0 +1,45 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Antlr\Antlr4\Runtime\Atn;
+
+use Antlr\Antlr4\Runtime\Comparison\Equality;
+use Antlr\Antlr4\Runtime\Comparison\Equivalence;
+use Antlr\Antlr4\Runtime\Comparison\Hashable;
+use Antlr\Antlr4\Runtime\Comparison\Hasher;
+use Antlr\Antlr4\Runtime\PredictionContexts\PredictionContext;
+
+
+/**
+ * An equivalence class for configurations, {@see ATNConfigSet}.
+ */
+class ATNEquivalence implements Equivalence
+{
+    
+    public function equivalent(Hashable $left, Hashable $right): bool
+    {
+        if ($left === $right) {
+            return true;
+        }
+
+        if (!($left instanceof ATNConfig) || !($right instanceof ATNConfig)) {
+            return false;
+        }
+
+        return $left->alt === $right->alt
+            && $left->semanticContext->equals($right->semanticContext)
+            && Equality::equals($left->state, $right->state);
+    }
+
+    public function hash(Hashable $value): int
+    {
+        return $value->hashCode();
+    }
+
+    public function equals(object $other): bool
+    {
+        return $other instanceof self;
+    }
+    
+}