docs: def normalize_variable_name(node, reachability_tester):
      # type: (Dict[str, Any], ReferenceReachabilityTester) -> Optional[str]
      """ Returns normalized variable name.
      Normalizing means that variable names get explicit visibility by
      visibility prefix such as: "g:", "s:", ...
  
      Returns None if the specified node is unanalyzable.
      A node is unanalyzable if:
  
      - the node is not identifier-like
      - the node is named dynamically
      """
  
      node_type = NodeType(node['type'])
  
      if not is_analyzable_identifier(node):
          return None
  
      if node_type is NodeType.IDENTIFIER:
          return _normalize_identifier_value(node, reachability_tester)
  
      # Nodes identifier-like without identifier is always normalized because
      # the nodes can not have a visibility prefix.
      if node_type in IdentifierLikeNodeTypes:
          return node['value']