diff --git a/grudge/function_registry.py b/grudge/function_registry.py
index 2f56eba4ad26d066039f5ac373619ac4ac10a656..4d521560d8e6c83a8e9fa238b3c46955dc62e7a7 100644
--- a/grudge/function_registry.py
+++ b/grudge/function_registry.py
@@ -136,6 +136,7 @@ class CElementwiseBinaryFunction(Function):
             return func(arg0, arg1)
 
         from pymbolic.primitives import Variable
+
         @memoize_in(self, "map_call_knl_%s" % func_name)
         def knl():
             i = Variable("i")
diff --git a/grudge/symbolic/operators.py b/grudge/symbolic/operators.py
index cb88fa64a60aeea6b7abfc8ffa34c2f21d06aa38..5f5cd5c9e0d6c7cc895db68f4110ff8a74d63e15 100644
--- a/grudge/symbolic/operators.py
+++ b/grudge/symbolic/operators.py
@@ -152,9 +152,10 @@ class InterpolationOperator(Operator):
         from pytools.obj_array import with_object_array_or_scalar
 
         def interp_one(subexpr):
+            from pymbolic.primitives import is_constant
             if self.dd_in == self.dd_out:
                 return subexpr
-            elif isinstance(subexpr, (int, float, complex, np.number)):
+            elif is_constant(subexpr):
                 return subexpr
             else:
                 from grudge.symbolic.primitives import OperatorBinding