diff --git a/loopy/library/reduction.py b/loopy/library/reduction.py
index 9071cbea804cfa0bad54ec3b477029bcb1d0e87c..fa382cb451e7793d414157652f32360311c91397 100644
--- a/loopy/library/reduction.py
+++ b/loopy/library/reduction.py
@@ -162,12 +162,17 @@ class ArgMinReductionOperation(_ArgExtremumReductionOperation):
 
 
 class ArgExtFunction(FunctionIdentifier):
+    init_arg_names = ("reduction_op", "scalar_dtype", "name", "inames")
+
     def __init__(self, reduction_op, scalar_dtype, name, inames):
         self.reduction_op = reduction_op
         self.scalar_dtype = scalar_dtype
         self.name = name
         self.inames = inames
 
+    def __getinitargs(self):
+        return (self.reduction_op, self.scalar_dtype, self.name, self.inames)
+
 
 def get_argext_preamble(func_id):
     op = func_id.reduction_op