code: static AbstractConfigValue makeReplacement(ResolveContext context,
              List<AbstractConfigValue> stack, int skipping) throws NotPossibleToResolve {
  
          List<AbstractConfigValue> subStack = stack.subList(skipping, stack.size());
  
          if (subStack.isEmpty()) {
              throw new NotPossibleToResolve(context);
          } else {
              // generate a new merge stack from only the remaining items
              AbstractConfigValue merged = null;
              for (AbstractConfigValue v : subStack) {
                  if (merged == null)
                      merged = v;
                  else
                      merged = merged.withFallback(v);
              }
              return merged;
          }
      }
docs: static method also used by ConfigDelayedMergeObject