model/src/main/java/jetbrains/jetpad/model/transform/Transformers.java [235:254]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (v1 == null || v2 == null) {
          return compareNulls(v1, v2);
        }

        return cmp.compare(v1, v2);
      }
    };

    return new BaseTransformer<CollectionT, ObservableList<ItemT>>() {
      @Override
      public Transformation<CollectionT, ObservableList<ItemT>> transform(CollectionT from) {
        return transform(from, new ObservableArrayList<ItemT>());
      }

      @Override
      public Transformation<CollectionT, ObservableList<ItemT>> transform(
          final CollectionT from, final ObservableList<ItemT> to) {
        return new Transformation<CollectionT, ObservableList<ItemT>>() {
          private Registration myCollectionReg;
          private CollectionListener<ItemT> myCollectionListener;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



model/src/main/java/jetbrains/jetpad/model/transform/Transformers.java [356:376]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        if (v1 == null || v2 == null) {
          return compareNulls(v1, v2);
        }

        return cmp.compare(v1, v2);
      }
    };

    return new BaseTransformer<CollectionT, ObservableList<ItemT>>() {
      @Override
      public Transformation<CollectionT, ObservableList<ItemT>> transform(CollectionT from) {
        //tree list has much better asymptotics of insert
        return transform(from, new ObservableArrayList<ItemT>());
      }

      @Override
      public Transformation<CollectionT, ObservableList<ItemT>> transform(
          final CollectionT from, final ObservableList<ItemT> to) {
        return new Transformation<CollectionT, ObservableList<ItemT>>() {
          private Registration myCollectionReg;
          private CollectionListener<ItemT> myCollectionListener;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



