code: def field_match(self, node_field, pattern_field):
          
          is_good_list = (isinstance(pattern_field, list) and
                          self.check_list(node_field, pattern_field))
          is_good_node = (isinstance(pattern_field, AST) and
                          Check(node_field,
                                self.placeholders).visit(pattern_field))
  
          def strict_eq(f0, f1):
              try:
                  return f0 == f1 or (isnan(f0) and isnan(f1))
              except TypeError:
                  return f0 == f1
  
          is_same = strict_eq(pattern_field, node_field)
          return is_good_list or is_good_node or is_same
docs: Check if two fields match.
  
          Field match if:
              - If it is a list, all values have to match.
              - If if is a node, recursively check it.
              - Otherwise, check values are equal.