code: def _weave_conflicting_selectors(prefixes, a, b, suffix=()):
      
      # OK, what this actually does: given a list of selector chains, two
      # "conflicting" selector chains, and an optional suffix, return a new list
      # of chains like this:
      #   prefix[0] + a + b + suffix,
      #   prefix[0] + b + a + suffix,
      #   prefix[1] + a + b + suffix,
      #   ...
      # In other words, this just appends a new chain to each of a list of given
      # chains, except that the new chain might be the superposition of two
      # other incompatible chains.
      both = a and b
      for prefix in prefixes:
          yield prefix + a + b + suffix
          if both:
              # Only use both orderings if there's an actual conflict!
              yield prefix + b + a + suffix
docs: Part of the selector merge algorithm above.  Not useful on its own.  Pay
      no attention to the man behind the curtain.