def is_pep484_nonable(typ):
<EOL>if typ is type(None):<EOL><INDENT>return True<EOL><DEDENT>elif is_typevar(typ) or is_union_type(typ):<EOL><INDENT>return any(is_pep484_nonable(tt) for tt in get_alternate_types_resolving_forwardref_union_and_typevar(typ))<EOL><DEDENT>else:<EOL><INDENT>return False<EOL><DEDENT>
Checks if a given type is nonable, meaning that it explicitly or implicitly declares a Union with NoneType.
Nested TypeVars and Unions are supported.

:param typ:
:return: