anchor.diff:      let areEqual lexemsListCorrect lexemsList =
           try 
               List.map2
  -                (fun x y ->
  -                    match x,y with
  -                    | LPAREN _, LPAREN _
  -                    | RPAREN _ ,RPAREN _
  -                    | SEMICOLON _, SEMICOLON _ -> true
  -                    | x,y -> x = y)
  -                 lexemsListCorrect lexemsList
  +                (fun x y -> equalTokens x y)
  +                lexemsListCorrect lexemsList
               |> List.reduce (&&)
           with _ -> false
       Assert.IsTrue (areEqual lexemsListCorrect lexemsList)
  
positive.code: 
  let dummyPos s = new Source.t(s)
  
  let lexerTest str lexemsListCorrect =
      let buf = LexBuffer<_>.FromString str
      Lexer.currentFile := ""
  
negative.code:     member test.``Lexer seq test`` () =
          lexerTest 
              "+s: NUMBER PLUS NUMBER;"
              [START_RULE_SIGN (getSource "+" 0 1); LIDENT (getSource "s" 1 2); COLON (getSource ":" 2 3); UIDENT (getSource "NUMBER" 4 10)
              ; UIDENT (getSource "PLUS" 11 15); UIDENT (getSource "NUMBER" 16 22); SEMICOLON (getSource ";" 22 23); EOF (getSource "" 23 23)]
  
      [<Test>]
      member test.``Lexer cls test`` () =
          lexerTest 
              "+s: (MINUS|PLUS)*;"
              [START_RULE_SIGN (getSource "+" 0 1); LIDENT (getSource "s" 1 2); COLON (getSource ":" 2 3); LPAREN (getSource "(" 4 5)
              ; UIDENT (getSource "MINUS" 5 10); BAR (getSource "|" 10 11); UIDENT (getSource "PLUS" 11 15);
              RPAREN (getSource ")" 15 16); STAR (getSource "*" 16 17); SEMICOLON (getSource ";" 17 18); EOF (getSource "" 18 18)]
  
  