anchor.diff:    return sb.toString();
   }
   
  -/**
  - * If [s] is [null] returns empty string, otherwise returns [s] as is.
  - */
  +/// Returns the empty string if [s] is null, otherwise returns [s] as is.
   String nullToEmpty(String s) => s == null ? '' : s;
   
  -/**
  - * If [s] is an empty string returns [null], otherwise returns [s] as is.
  - */
  +/// Returns `null` if [s] is empty, otherwise returns [s] as is.
   String emptyToNull(String s) => s == '' ? null : s;
   
  -/**
  - * Concatenates [s] to itself a given number of [times]. Empty and null
  - * strings will always result in empty and null strings respectively no matter
  - * how many [times] they are [repeat]ed.
  - *
  - * If [times] is negative, returns the [flip]ped string repeated given number
  - * of [times].
  - */
  +/// Concatenates [s] to itself a given number of [times]. Empty and null
  +/// strings will always result in empty and null strings respectively no matter
  +/// how many [times] they are [repeat]ed.
  +///
  +/// If [times] is negative, returns the [flip]ped string repeated given number
  +/// of [times].
   String repeat(String s, int times) {
     if (s == null || s == '') return s;
     if (times < 0) {
  
positive.code:   return sink.toString();
  }
  
  /**
   * Loops over [s] and returns traversed characters. Takes arbitrary [from] and
   * [to] indices. Works as a substitute for [String.substring], except it never
   * throws [RangeError]. Supports negative indices. Think of an index as a
   * coordinate in an infinite in both directions vector filled with repeating
   * string [s], whose 0-th coordinate coincides with the 0-th character in [s].
   * Then [loop] returns the sub-vector defined by the interval ([from], [to]).
   * [from] is inclusive. [to] is exclusive.
   *
   * This method throws exceptions on [null] and empty strings.
   *
   * If [to] is omitted or is [null] the traversing ends at the end of the loop.
   *
   * If [to] < [from], traverses [s] in the opposite direction.
   *
   * For example:
   *
   * loop('Hello, World!', 7) == 'World!'
   * loop('ab', 0, 6) == 'ababab'
   * loop('test.txt', -3) == 'txt'
   * loop('ldwor', -3, 2) == 'world'
   */
  String loop(String s, int from, [int to]) {
    if (s == null || s == '') {
      throw new ArgumentError('Input string cannot be null or empty');
  
negative.code:   }
  }
  
  /// Returns `true` if [rune] represents a whitespace character.
  ///
  /// The definition of whitespace matches that used in [String.trim] which is
  /// based on Unicode 6.2. This maybe be a different set of characters than the
  /// environment's [RegExp] definition for whitespace, which is given by the
  /// ECMAScript standard: http://ecma-international.org/ecma-262/5.1/#sec-15.10
  bool isWhitespace(int rune) => ((rune >= 0x0009 && rune <= 0x000D) ||
      rune == 0x0020 ||
      rune == 0x0085 ||
  