anchor.diff:  bool _isNone(val) => val == _none;
   
   /**
  - * Calls [lookup] recursively using [path] elemenets as keys.
  + * Looks up the element given by the [path] of keys and indices
  + * in the [structure] of Maps and Vectors.
  + *
  + * If the [path] does not exist, [orElse] is called to obtain the
  + * return value. Default [orElse] throws exception.
    */
   lookupIn(Persistent structure, List path, {orElse()}) =>
       _lookupIn(structure, path.iterator, orElse: orElse);
  
positive.code: }
  
  /**
   * Calls [delete] recursively using [path] elemenets as keys.
   */
  Persistent deleteIn(Persistent structure, List path, {bool safe: false}) =>
      _deleteIn(structure, path.iterator..moveNext(), safe: safe);
  
negative.code: }
  
  /**
   * Inserts the [value] to the position given by the [path] of keys and indices
   * in the [structure] of Maps and Vectors.
   *
   * This will not create any middleway structures.
   */
  Persistent insertIn(Persistent structure, Iterable path, dynamic value) =>
      _insertIn(structure, path.iterator..moveNext(), value);
  
  