equal
  deleted
  inserted
  replaced
  
    
    
    15                   ((ONE | CHAR('b')) | CHAR('c')) ~ (CHAR('d') ~ ZERO))) == CHAR('a')) | 
    15                   ((ONE | CHAR('b')) | CHAR('c')) ~ (CHAR('d') ~ ZERO))) == CHAR('a')) | 
    16 assert(simp((ZERO | ((ZERO | ZERO) | (ZERO | ZERO))) ~ ((ONE | ZERO) | ONE ) ~ (CHAR('a'))) == ZERO) | 
    16 assert(simp((ZERO | ((ZERO | ZERO) | (ZERO | ZERO))) ~ ((ONE | ZERO) | ONE ) ~ (CHAR('a'))) == ZERO) | 
    17 assert(simp(ALT(ONE | ONE, ONE | ONE)) == ONE)  | 
    17 assert(simp(ALT(ONE | ONE, ONE | ONE)) == ONE)  | 
    18 assert(simp(ALT(ZERO | CHAR('a'), CHAR('a') | ZERO)) == CHAR('a')) | 
    18 assert(simp(ALT(ZERO | CHAR('a'), CHAR('a') | ZERO)) == CHAR('a')) | 
    19 assert(simp(ALT(ONE | CHAR('a'), CHAR('a') | ONE)) == ALT(ONE, CHAR('a'))) | 
    19 assert(simp(ALT(ONE | CHAR('a'), CHAR('a') | ONE)) == ALT(ONE, CHAR('a'))) | 
         | 
    20 assert(simp(ALTs(Nil)) == ZERO)  | 
         | 
    21 assert(simp(SEQs(List(CHAR('a')))) == CHAR('a')) | 
    20   | 
    22   | 
    21   | 
         | 
    22   | 
         |