code: def add_fixer(self, fixer):
          
          self.fixers.append(fixer)
          tree = reduce_tree(fixer.pattern_tree)
          linear = tree.get_linear_subpattern()
          match_nodes = self.add(linear, start=self.root)
          for match_node in match_nodes:
              match_node.fixers.append(fixer)
docs: Reduces a fixer's pattern tree to a linear path and adds it
          to the matcher(a common Aho-Corasick automaton). The fixer is
          appended on the matching states and called when they are
          reached