docs: def _merge_state_from_predecessors(self, node):
          """
          Get abstract states for all predecessors of the node, merge them, and return the merged state.
  
          :param node: The node in graph.
          :return:     A merged state, or None if no predecessor is available.
          """
  
          preds = self._graph_visitor.predecessors(node)
  
          states = [ self._state_map[n] for n in preds if n in self._state_map ]
  
          if not states:
              return None
  
          return reduce(lambda s0, s1: self._merge_states(node, s0, s1), states[1:], states[0])