docstr: A gradual type checker for graphs
  Effect: every node's field type will be
  populated with a type after type-checking is done
code: def type_check(self):
      """
      A gradual type checker for graphs
      Effect: every node's field type will be
      populated with a type after type-checking is done
      """
      graph = self.traced.graph
  
      # type check every node with gradual type rules
      # if any node does not type check return false
      for n in graph.nodes:
          self.type_check_node(n)
      return True
  
imports: from functools import reduce
  import torch
  import operator
  from torch.fx.tensor_type import Dyn, is_consistent, TensorType, is_more_precise
  from typing import Callable, Dict
  from torch.fx.node import Target, Node
  from torch.nn.modules.batchnorm import BatchNorm2d
  from torch.nn.modules.conv import Conv2d
  from torch.fx.experimental.refinement_types import Equality
  import itertools
  from torch.fx.experimental.unification import Var
  import sympy
label_desc: Use image node_id 2 for calling the GraphTypeChecker obj's underlying member method code with example usage: obj.type_check() and returns: True