code: def supercedes(a, b):
      """A is consistent and strictly more specific than B"""
      if len(a) < len(b):
          # only case is if a is empty and b is variadic
          return not a and len(b) == 1 and isvariadic(b[-1])
      elif len(a) == len(b):
          return all(map(issubclass, a, b))
      else:
          # len(a) > len(b)
          p1 = 0
          p2 = 0
          while p1 < len(a) and p2 < len(b):
              cur_a = a[p1]
              cur_b = b[p2]
              if not (isvariadic(cur_a) or isvariadic(cur_b)):
                  if not issubclass(cur_a, cur_b):
                      return False
                  p1 += 1
                  p2 += 1
              elif isvariadic(cur_a):
                  assert p1 == len(a) - 1
                  return p2 == len(b) - 1 and issubclass(cur_a, cur_b)
              elif isvariadic(cur_b):
                  assert p2 == len(b) - 1
                  if not issubclass(cur_a, cur_b):
                      return False
                  p1 += 1
          return p2 == len(b) - 1 and p1 == len(a)
  
file_path: pytorch/torch/fx/experimental/unification/multipledispatch/conflict.py
imports: from .utils import _toposort, groupby
  from .variadic import isvariadic
label_desc: Use image node_id 1 for calling a global function with example usage: supercedes(a, b) and returns: unknown, all, unknown, False, unknown, False