code: def test_complex_signature(self):
      @typecheck(
          a=int, b=str, c=sequenceof(int), d=tupleof(str), e=dict
      )
      def f(a, b="5", c=[10], *d, **e):
          pass
  
      f(
          1,
          "a",
      )
      f(1, foo={})
      f(1, "a", foo={})
      f(1, c=[25, 2])
      with self.assertRaises(TypeError):
          f(1, "2", a=2)
  
file_path: hail/hail/python/test/hail/typecheck/test_typecheck.py
imports: import unittest
  from hail.typecheck.check import *
label_desc: Use image node_id 8 for calling the Tests obj's underlying member method code with example usage: obj.test_complex_signature() without return types