anchor.diff:      $dart$core.int get size => $ceylonString(_$delegate.toString()).size;
       $dart$core.int get lastIndex => !empty ? size - 1 : null;
       $dart$core.String toString() => _$delegate.toString();
  +    void set string($dart$core.String string) {
  +        clear();
  +        append(string);
  +    }
       Iterator iterator() => $ceylonString(toString()).iterator();
       $dart$core.String substring([$dart$core.int index, $dart$core.int length]) => $dartString($ceylonString(toString()).measure($ceylonInteger(index), length));
  +    String measure([Integer from, $dart$core.int length]) => $ceylonString(toString()).measure(from, length);
  +    String span([Integer from, Integer to]) => $ceylonString(toString()).measure(from, $dartInt(to));
  +    String spanTo([Integer to]) => $ceylonString(toString()).spanTo(to);
  +    String spanFrom([Integer from]) => $ceylonString(toString()).spanFrom(from);
       Character getFromFirst([$dart$core.int index]) => $ceylonString(toString()).getFromFirst(index);
       StringBuilder append([$dart$core.String string]) {
           _$delegate.write($ceylonString(string));
  
positive.code:     }
      $dart$core.int get size => $ceylon$interop$dart.dartString(_$val).runes.length;
      $dart$core.int get lastIndex => !empty ? size - 1 : null;
      Iterator iterator() => new BaseString$iterator$$anonymous$4_(this);
      Character getFromFirst([$dart$core.int index]) {
          if (index < 0) {
              return null;
  
negative.code:                 doElse$0 = false;
                  $dart$core.Object min = first;
                  while (true) {
                      if (!(!(min == min))) {
                          break;
                      }
                      $dart$core.Object val;
                      {
                          $dart$core.Object val$2 = it.next();
  