anchor.diff:    bool get empty => this.first.empty || this.second.empty;
   
     Parser derive(token){
  -    print('_ ($token) => $this');
       var r;
       if (this.first.nullable){
         var left = new And(this.first.derive(token), this.second);
  
positive.code: 
    MySet parseNull() {
      var r = this.result;
      print('$this: $r');
      return r;
    }
  
    Parser derive(token) {
      var r = new Empty();
      print('($token) => $this: $r');
      return r;
    }
  
  
negative.code:   And operator +(Parser other) => new And(this, other);
    Or operator |(Parser other) => new Or(this, other);
    Parser operator *(Parser other) {
      var star = new KleeneStar();
      star.parser = this + star | new Null();
      return star;
  