anchor.diff:  class And extends Language {
     final Language left;
     final Language right;
  +
  +  bool get isMatch => left.isMatch && right.isMatch;
  +  bool get canAccept => left.canAccept && right.canAccept;
  +  bool get isReject => left.isReject || right.isReject;
  +
     And._internal(this.left, this.right);
   
     factory And(left, right){
  
positive.code: /// This [Language] is used as the last derivative to test wheather it is a
  /// match.
  class EndOfInput extends Language {
    Language derive(dynamic ch) => (ch == EOI)? match: empty;
    toString() => '<EOI>';
  }
  
  
  
negative.code: class Or extends Language {
    final Language left;
    final Language right;
  
    bool get isMatch => left.isMatch && right.isMatch;
    bool get canAccept => left.canAccept || right.canAccept;
    bool get isReject => left.isReject && right.isReject;
  
    Or._internal(this.left, this.right);
    factory Or(left, right){
      if (left == empty && right == empty) return empty;
  