docs: public static boolean symtabExtends(SymbolTable superset, SymbolTable subset)
      {
          assert superset.isSystemTable() || superset.isLocalTable();
          assert subset.isSystemTable() || subset.isLocalTable();
  
          // NB: system symtab 1.0 is a singleton, hence if both symtabs
          //     are one this will be true.
          if (superset == subset) return true;
  
          // If the subset's symtab is a system symtab, the superset's is always
          // an extension of the subset's as system symtab-ness is irrelevant to
          // the conditions for copy opt. to be safe.
          // TODO amzn/ion-java/issues/24 System symtab-ness ARE relevant if there's multiple
          //      versions.
          if (subset.isSystemTable()) return true;
  
          // From here on, subset is a LST because isSystemTable() is false.
  
          if (superset.isLocalTable())
          {
              if (superset instanceof LocalSymbolTable && subset instanceof LocalSymbolTable)
              {
                  // use the internal comparison
                  return ((LocalSymbolTable) superset).symtabExtends(subset);
              }
              // TODO reason about symbol tables that don't extend LocalSymbolTable but are still local
              return localSymtabExtends(superset, subset);
          }
  
          // From here on, superset is a system symtab.
  
          // If LST subset has no local symbols or imports, and it's system
          // symbols are same as those of system symtab superset's, then
          // superset extends subset
          return subset.getMaxId() == superset.getMaxId();
      }