diff --git a/pymbolic/primitives.py b/pymbolic/primitives.py
index 44ba4eaa85855859e4e9bfc4d4c76df933099962..1b4977a875f7178eff32b6ca1f7e2fc8c3024d0c 100644
--- a/pymbolic/primitives.py
+++ b/pymbolic/primitives.py
@@ -1696,7 +1696,7 @@ class Slice(Expression):
 
 
 @expr_dataclass()
-class NaN(Expression):
+class NaN(AlgebraicLeaf):
     """
     An expression node representing not-a-number as a floating point number.
     Unlike, :data:`math.nan`, all instances of :class:`NaN` compare equal, as