anchor.diff:    ElementWrapper next;
     ElementWrapper previous;
   
  -  Function onInsert;
  -  Function onRemove;
  -  Function onMove;
  -
  -  List<dynamic> _directives = [];
     final NgAnimate _animate;
   
     Block(this.elements, this._animate);
  
positive.code:  * contain other [Block]s and it is the only way in which DOM can be changed
   * structurally.
   *
   * A [Block] is a collection of DOM nodes and [Directive]s for those nodes.
   *
   * A [Block] is responsible for instantiating the [Directive]s and for
   * inserting / removing itself to/from DOM.
   *
   * A [Block] can be created from [BlockFactory].
   *
  
negative.code:     dom.Node previousElement = previousElements[previousElements.length - 1];
      dom.Node insertBeforeElement = previousElement.nextNode;
      dom.Node parentElement = previousElement.parentNode;
  
      _animate.insert(elements, parentElement, insertBefore: insertBeforeElement);
  
      return this;
    }
  
    Block remove() {
      bool preventDefault = false;
  
      _animate.remove(elements);
  
      // Remove block from list
      if (previous != null && (previous.next = next) != null) {
  