code: @Override
      public <T extends ImmutableTerm> Optional<ImmutableSubstitution<T>> applyToSubstitution(
              ImmutableSubstitution<T> substitution) {
          return Optional.of(applyRenaming(substitution));
      }
docs: More efficient implementation