code: def type_checked(func: FType) -> FType:
      """Type check the input arguments of a function."""
      sig = inspect.signature(func)
  
      @functools.wraps(func)
      def wrap(*args, **kwargs):
          bound_args = sig.bind(*args, **kwargs)
          bound_args.apply_defaults()
          for param in sig.parameters.values():
              if param.annotation != inspect.Signature.empty:
                  error_msg = _type_check(
                      bound_args.arguments[param.name],
                      param.name,
                      param.annotation,
                  )
                  if error_msg is not None:
                      error_msg = (
                          f'In "{func.__qualname__}", {error_msg}'
                      )
                      raise TypeError(error_msg)
          return func(*args, **kwargs)
  
      return wrap
  
file_path: tvm/python/tvm/tir/schedule/_type_checker.py
imports: import collections
  import collections.abc
  import functools
  import inspect
  from typing import Any, Callable, Dict, List, Optional, Tuple, TypeVar, Union
  import typing
label_desc: Use image node_id 10 for calling a global function with example usage: type_checked(func) and returns: wrap, func