anchor.diff:  /// Store with a commands backup, allowing to cancel commands
   class ReversibleStore<C extends Command<M>, M extends AbstractModel>
       extends Store<C, M> {
  +
     /// model snapshot
     M get currentState => apply();
   
  
positive.code: 
    List<Command<M>> get history => _history;
  
    ReversibleStore(InitialStateProvider<M> initialStateProvider)
        : super(initialStateProvider) {
      _history = [];
      initHistory(historyController.stream);
    }
  
    void initHistory(Stream<C> hStream) {
      hStream.where((c) => !(c is CancelCommand)).listen((c) => history.add(c));
    }
  
negative.code: 
    CancelCommand(this.prevValue);
  
    // command execution just return previous value
    @override
    T exec(T model) => prevValue;
  }
  