from typing import Type


def full_name_of_type(t: Type) -> str:
  """Returns the fully qualified name of a type

  Args:
      t (Type): A type, which may be a builtin type or a class

  Returns:
      str: The fully qualified name of the type
  """
  module: str = t.__module__
  if module == 'builtins':
    result: str = t.__qualname__
  else:
    result = module + '.' + t.__qualname__
  return result