class ObservableList extends AbstractObservableValue<List<? extends E>> implements List<E>,
                                                                                                   SettableValue<List<? extends E>> {

  @Override
  public boolean add(E e) {

    boolean added = myInnerList.add(e);
    if (added) {
      notifyContentsChanged();
    }
    return added;
  }

  public  ObservableList();
  public  ObservableList(@NotNull Iterable<? extends E> otherCollection);

}