code: def test_meta_programming_uncaptured_var():
      def generate_erf(dtype):
          @T.prim_func
          def main(A: T.Buffer((1,), dtype), C: T.Buffer((1,), dtype)):
              for i in range(1):
                  with T.block("C"):
                      C[i] = T.erf(A[i])
  
          return main
  
      @T.prim_func
      def fp32(
          A: T.Buffer((1,), "float32"), C: T.Buffer((1,), "float32")
      ):
          for i in range(1):
              with T.block("C"):
                  C[i] = T.erf(A[i])
  
      @T.prim_func
      def fp16(
          A: T.Buffer((1,), "float16"), C: T.Buffer((1,), "float16")
      ):
          for i in range(1):
              with T.block("C"):
                  C[i] = T.erf(A[i])
  
      tvm.ir.assert_structural_equal(
          fp16.with_attr("global_symbol", "main"),
          generate_erf("float16"),
      )
      tvm.ir.assert_structural_equal(
          fp32.with_attr("global_symbol", "main"),
          generate_erf("float32"),
      )
  
imports: import tvm
  from tvm.script import tir
label_desc: Use image node_id 2 for calling a global function with example usage: test_meta_programming_uncaptured_var() and returns: main