code: def test_unapplied_constructor():
      type_def_str = r"""
  type List[A] {
    Cons(A, List[A]),
    Nil,
  }
      """
      main_def_str = r"""
  def @main[A]() -> fn (A, List[A]) -> List[A] {
    Cons
  }
      """
      mod = tvm.relay.parse(SEMVER + type_def_str + main_def_str)
      mod_str = str(mod)
      # ensure constructors are printed correctly in type definitions (with their
      # signature) and as exprs (without their signature)
      assert type_def_str.strip() in mod_str
      assert main_def_str.strip() in mod_str
  
imports: import tvm
  import tvm.testing
  from tvm import te
  from tvm import relay
  from tvm.relay import testing
  import numpy
  from tvm.relay import Expr
  from tvm.relay.analysis import free_vars
  import pytest
label_desc: Use image node_id 24 for calling a global function with example usage: test_unapplied_constructor() without return types