anchor.diff:  ///
   /// A `LinkedList` also allows constant time adding and removing at either end,
   /// and a constant time length getter.
  +///
  +/// Example:
  +/// ```dart
  +/// class EntryItem extends LinkedListEntry<EntryItem> {
  +///   final int id;
  +///   final String text;
  +///   EntryItem(this.id, this.text);
  +///
  +///   @override
  +///   String toString() {
  +///     return '$id : $text';
  +///   }
  +/// }
  +///
  +/// void main(){
  +///   final linkedList = LinkedList<EntryItem>();
  +///   linkedList.addAll(
  +///       [EntryItem(1, 'A'), EntryItem(2, 'B'), EntryItem(3, 'C')]);
  +///   print(linkedList.first); // 1 : A
  +///   print(linkedList.last); // 3 : C
  +///
  +///   // Add new item after first item.
  +///   linkedList.first.insertAfter(EntryItem(15, 'E'));
  +///   // Add new item before last item.
  +///   linkedList.last.insertBefore(EntryItem(10, 'D'));
  +///   // Iterate items.
  +///   for (var entry in linkedList) {
  +///     print(entry);
  +///     // 1 : A
  +///     // 15 : E
  +///     // 2 : B
  +///     // 10 : D
  +///     // 3 : C
  +///   }
  +///
  +///   // Remove item using index from list.
  +///   linkedList.elementAt(2).unlink();
  +///   print(linkedList); // (1 : A, 15 : E, 10 : D, 3 : C)
  +///   // Remove first item.
  +///   linkedList.first.unlink();
  +///   print(linkedList); // (15 : E, 10 : D, 3 : C)
  +///   // Remove last item from list.
  +///   linkedList.remove(linkedList.last);
  +///   print(linkedList); // (15 : E, 10 : D)
  +///   // Remove all items.
  +///   linkedList.clear();
  +///   print(linkedList.length); // 0
  +///   print(linkedList.isEmpty); // true
  +/// }
  +/// ```
   class LinkedList<E extends LinkedListEntry<E>> extends Iterable<E> {
     int _modificationCount = 0;
     int _length = 0;
  
positive.code: 
    /// The successor of this element in its linked list.
    ///
    /// The value is  `null` if there is no successor in the linked list,
    /// or if this entry is not currently in any list.
    E? get next {
      if (_list == null || identical(_list!.first, _next)) return null;
  
negative.code:     _insertBefore(_first, entry, updateFirst: false);
    }
  
    /// Adds [entries] to the end of the linked list.
    void addAll(Iterable<E> entries) {
      entries.forEach(add);
    }
  