anchor.diff:      var index = arguments[2].assertNumber("index");
       index.assertNoUnits("index");
   
  -    var lengthInRunes = string.text.runes.length;
  -    var indexInt = index.assertInt("index");
  -    if (indexInt < 0) indexInt = lengthInRunes + indexInt + 2;
  -    var insertionPoint = codepointIndexToCodeUnitIndex(
  -        string.text, math.max(math.min(indexInt - 1, lengthInRunes), 0));
  +    var codeUnitIndex = codepointIndexToCodeUnitIndex(string.text,
  +        _codepointForIndex(index.assertInt("index"), string.text.runes.length));
       return new SassString(
  -        string.text.replaceRange(insertionPoint, insertionPoint, insert.text),
  +        string.text.replaceRange(codeUnitIndex, codeUnitIndex, insert.text),
           quotes: string.hasQuotes);
     }));
   
  
positive.code:     var codePointIndex =
          codeUnitIndexToCodepointIndex(string.text, codeUnitIndex);
      return new SassNumber(codePointIndex + 1);
    }));
  
    // ## Introspection
  
negative.code: 
    return color.changeAlpha(color.alpha - amount.valueInRange(0, 1, "amount"));
  }
  
  int _codepointForIndex(int index, int lengthInCodepoints) {
    if (index == 0) return 0;
    if (index > 0) return math.min(index - 1, lengthInCodepoints);
    return math.max(lengthInCodepoints + index, 0);
  }
  