diff --git a/loopy/library/function.py b/loopy/library/function.py
index efa590371bb632cbc9776078ea6b5c64f626d46a..f3d14516c981230283fa0f294ba4484eae26c49c 100644
--- a/loopy/library/function.py
+++ b/loopy/library/function.py
@@ -25,8 +25,9 @@ THE SOFTWARE.
 
 def default_function_mangler(kernel, name, arg_dtypes):
     from loopy.library.reduction import reduction_function_mangler
+    from loopy.library.tuple import tuple_function_mangler
 
-    manglers = [reduction_function_mangler]
+    manglers = [reduction_function_mangler, tuple_function_mangler]
     for mangler in manglers:
         result = mangler(kernel, name, arg_dtypes)
         if result is not None:
diff --git a/loopy/type_inference.py b/loopy/type_inference.py
index 78d817ce73724d90a6cc6f380b24290971f6c1e7..3fb165ead5634d1efbf899a5a05ef9be4355d672 100644
--- a/loopy/type_inference.py
+++ b/loopy/type_inference.py
@@ -442,7 +442,7 @@ def _infer_var_type(kernel, var_name, type_inf_mapper, subst_expander):
                         result_i = comp_dtype_set
                         break
 
-                assert found
+                assert found, var_name
                 if result_i is not None:
                     result.append(result_i)
 
diff --git a/test/test_target.py b/test/test_target.py
index b656383e7bbe008892f45159faadd2d195d67a3b..4b09829e163efebde878268881eff67b3dca8e5e 100644
--- a/test/test_target.py
+++ b/test/test_target.py
@@ -176,6 +176,19 @@ def test_random123(ctx_factory, tp):
     assert (0 <= out).all()
 
 
+def test_tuple():
+    knl = lp.make_kernel(
+            "{ [i]: 0 <= i < 10 }",
+            """
+            a, b = make_tuple(1, 2)
+            """)
+
+    print(
+            lp.generate_code(
+                lp.get_one_scheduled_kernel(
+                    lp.preprocess_kernel(knl)))[0])
+
+
 def test_clamp(ctx_factory):
     ctx = ctx_factory()
     queue = cl.CommandQueue(ctx)