        Output file describing compiled parser placed in Parser.fs and Parser.fsi
------------------------
states = 
state 0:  items:    _startinteractive ->  . interactive
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto interactive: 1
    goto expr: 6
    goto binding: 8
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 1:  items:    _startinteractive -> interactive . 
  actions:    action 'EOF' (noprec):   accept
    action 'IF' (noprec):   accept
    action 'THEN' (noprec):   accept
    action 'ELSE' (noprec):   accept
    action 'FUN' (noprec):   accept
    action 'ARROW' (noprec):   accept
    action 'LET' (noprec):   accept
    action 'REC' (noprec):   accept
    action 'IN' (noprec):   accept
    action 'TRUE' (noprec):   accept
    action 'FALSE' (noprec):   accept
    action 'BRA' (noprec):   accept
    action 'KET' (noprec):   accept
    action 'PLUS' (noprec):   accept
    action 'MINUS' (noprec):   accept
    action 'STAR' (noprec):   accept
    action 'SLASH' (noprec):   accept
    action 'PERCENT' (noprec):   accept
    action 'LT' (noprec):   accept
    action 'GT' (noprec):   accept
    action 'LEQ' (noprec):   accept
    action 'GEQ' (noprec):   accept
    action 'EQ' (noprec):   accept
    action 'NEQ' (noprec):   accept
    action 'AND' (noprec):   accept
    action 'OR' (noprec):   accept
    action 'NOT' (noprec):   accept
    action 'COLON' (noprec):   accept
    action 'SEMICOLON2' (noprec):   accept
    action 'COMMA' (noprec):   accept
    action 'STRING' (noprec):   accept
    action 'ID' (noprec):   accept
    action 'CHAR' (noprec):   accept
    action 'FLOAT' (noprec):   accept
    action 'INT' (noprec):   accept
    action 'error' (noprec):   accept
    action '#' (noprec):   accept
    action '$$' (noprec):   accept
  immediate action:   accept  gotos:state 2:  items:    _startprogram ->  . program
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto program: 3
    goto expr: 4
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 3:  items:    _startprogram -> program . 
  actions:    action 'EOF' (noprec):   accept
    action 'IF' (noprec):   accept
    action 'THEN' (noprec):   accept
    action 'ELSE' (noprec):   accept
    action 'FUN' (noprec):   accept
    action 'ARROW' (noprec):   accept
    action 'LET' (noprec):   accept
    action 'REC' (noprec):   accept
    action 'IN' (noprec):   accept
    action 'TRUE' (noprec):   accept
    action 'FALSE' (noprec):   accept
    action 'BRA' (noprec):   accept
    action 'KET' (noprec):   accept
    action 'PLUS' (noprec):   accept
    action 'MINUS' (noprec):   accept
    action 'STAR' (noprec):   accept
    action 'SLASH' (noprec):   accept
    action 'PERCENT' (noprec):   accept
    action 'LT' (noprec):   accept
    action 'GT' (noprec):   accept
    action 'LEQ' (noprec):   accept
    action 'GEQ' (noprec):   accept
    action 'EQ' (noprec):   accept
    action 'NEQ' (noprec):   accept
    action 'AND' (noprec):   accept
    action 'OR' (noprec):   accept
    action 'NOT' (noprec):   accept
    action 'COLON' (noprec):   accept
    action 'SEMICOLON2' (noprec):   accept
    action 'COMMA' (noprec):   accept
    action 'STRING' (noprec):   accept
    action 'ID' (noprec):   accept
    action 'CHAR' (noprec):   accept
    action 'FLOAT' (noprec):   accept
    action 'INT' (noprec):   accept
    action 'error' (noprec):   accept
    action '#' (noprec):   accept
    action '$$' (noprec):   accept
  immediate action:   accept  gotos:state 4:  items:    program -> expr . 'EOF'
  actions:    action 'EOF' (noprec):   shift 5
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 5:  items:    program -> expr 'EOF' . 
  actions:    action 'EOF' (noprec):   reduce program --> expr 'EOF'
    action 'IF' (noprec):   reduce program --> expr 'EOF'
    action 'THEN' (noprec):   reduce program --> expr 'EOF'
    action 'ELSE' (noprec):   reduce program --> expr 'EOF'
    action 'FUN' (noprec):   reduce program --> expr 'EOF'
    action 'ARROW' (noprec):   reduce program --> expr 'EOF'
    action 'LET' (noprec):   reduce program --> expr 'EOF'
    action 'REC' (noprec):   reduce program --> expr 'EOF'
    action 'IN' (noprec):   reduce program --> expr 'EOF'
    action 'TRUE' (noprec):   reduce program --> expr 'EOF'
    action 'FALSE' (noprec):   reduce program --> expr 'EOF'
    action 'BRA' (noprec):   reduce program --> expr 'EOF'
    action 'KET' (noprec):   reduce program --> expr 'EOF'
    action 'PLUS' (noprec):   reduce program --> expr 'EOF'
    action 'MINUS' (noprec):   reduce program --> expr 'EOF'
    action 'STAR' (noprec):   reduce program --> expr 'EOF'
    action 'SLASH' (noprec):   reduce program --> expr 'EOF'
    action 'PERCENT' (noprec):   reduce program --> expr 'EOF'
    action 'LT' (noprec):   reduce program --> expr 'EOF'
    action 'GT' (noprec):   reduce program --> expr 'EOF'
    action 'LEQ' (noprec):   reduce program --> expr 'EOF'
    action 'GEQ' (noprec):   reduce program --> expr 'EOF'
    action 'EQ' (noprec):   reduce program --> expr 'EOF'
    action 'NEQ' (noprec):   reduce program --> expr 'EOF'
    action 'AND' (noprec):   reduce program --> expr 'EOF'
    action 'OR' (noprec):   reduce program --> expr 'EOF'
    action 'NOT' (noprec):   reduce program --> expr 'EOF'
    action 'COLON' (noprec):   reduce program --> expr 'EOF'
    action 'SEMICOLON2' (noprec):   reduce program --> expr 'EOF'
    action 'COMMA' (noprec):   reduce program --> expr 'EOF'
    action 'STRING' (noprec):   reduce program --> expr 'EOF'
    action 'ID' (noprec):   reduce program --> expr 'EOF'
    action 'CHAR' (noprec):   reduce program --> expr 'EOF'
    action 'FLOAT' (noprec):   reduce program --> expr 'EOF'
    action 'INT' (noprec):   reduce program --> expr 'EOF'
    action 'error' (noprec):   reduce program --> expr 'EOF'
    action '#' (noprec):   reduce program --> expr 'EOF'
    action '$$' (noprec):   reduce program --> expr 'EOF'
  immediate action:   reduce program --> expr 'EOF'  gotos:state 6:  items:    interactive -> expr . 'SEMICOLON2'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   shift 7
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 7:  items:    interactive -> expr 'SEMICOLON2' . 
  actions:    action 'EOF' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'IF' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'THEN' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'ELSE' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'FUN' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'ARROW' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'LET' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'REC' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'IN' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'TRUE' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'FALSE' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'BRA' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'KET' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'PLUS' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'MINUS' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'STAR' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'SLASH' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'PERCENT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'LT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'GT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'LEQ' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'GEQ' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'EQ' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'NEQ' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'AND' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'OR' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'NOT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'COLON' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'SEMICOLON2' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'COMMA' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'STRING' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'ID' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'CHAR' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'FLOAT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'INT' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action 'error' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action '#' (noprec):   reduce interactive --> expr 'SEMICOLON2'
    action '$$' (noprec):   reduce interactive --> expr 'SEMICOLON2'
  immediate action:   reduce interactive --> expr 'SEMICOLON2'  gotos:state 8:  items:    interactive -> binding . 'SEMICOLON2'
    expr_tuple_atom -> binding . 'IN' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   shift 87
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   shift 9
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 9:  items:    interactive -> binding 'SEMICOLON2' . 
  actions:    action 'EOF' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'IF' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'THEN' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'ELSE' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'FUN' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'ARROW' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'LET' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'REC' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'IN' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'TRUE' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'FALSE' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'BRA' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'KET' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'PLUS' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'MINUS' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'STAR' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'SLASH' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'PERCENT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'LT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'GT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'LEQ' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'GEQ' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'EQ' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'NEQ' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'AND' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'OR' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'NOT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'COLON' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'SEMICOLON2' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'COMMA' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'STRING' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'ID' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'CHAR' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'FLOAT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'INT' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action 'error' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action '#' (noprec):   reduce interactive --> binding 'SEMICOLON2'
    action '$$' (noprec):   reduce interactive --> binding 'SEMICOLON2'
  immediate action:   reduce interactive --> binding 'SEMICOLON2'  gotos:state 10:  items:    expr -> expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (noprec):   reduce expr --> expr_tuple_atom
    action 'IF' (noprec):   reduce expr --> expr_tuple_atom
    action 'THEN' (noprec):   reduce expr --> expr_tuple_atom
    action 'ELSE' (noprec):   reduce expr --> expr_tuple_atom
    action 'FUN' (noprec):   reduce expr --> expr_tuple_atom
    action 'ARROW' (noprec):   reduce expr --> expr_tuple_atom
    action 'LET' (noprec):   reduce expr --> expr_tuple_atom
    action 'REC' (noprec):   reduce expr --> expr_tuple_atom
    action 'IN' (noprec):   reduce expr --> expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   reduce expr --> expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   shift 102
    action 'OR' (explicit left 9993):   shift 103
    action 'NOT' (noprec):   reduce expr --> expr_tuple_atom
    action 'COLON' (noprec):   reduce expr --> expr_tuple_atom
    action 'SEMICOLON2' (noprec):   reduce expr --> expr_tuple_atom
    action 'COMMA' (noprec):   reduce expr --> expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   reduce expr --> expr_tuple_atom
    action '#' (noprec):   reduce expr --> expr_tuple_atom
    action '$$' (noprec):   reduce expr --> expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 11:  items:    expr -> expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
    expr_tuple_atoms -> expr_tuple_atom . 
    expr_tuple_atoms -> expr_tuple_atom . 'COMMA' expr_tuple_atoms
  actions:    action 'EOF' (noprec):   reduce expr --> expr_tuple_atom
    action 'IF' (noprec):   reduce expr --> expr_tuple_atom
    action 'THEN' (noprec):   reduce expr --> expr_tuple_atom
    action 'ELSE' (noprec):   reduce expr --> expr_tuple_atom
    action 'FUN' (noprec):   reduce expr --> expr_tuple_atom
    action 'ARROW' (noprec):   reduce expr --> expr_tuple_atom
    action 'LET' (noprec):   reduce expr --> expr_tuple_atom
    action 'REC' (noprec):   reduce expr --> expr_tuple_atom
    action 'IN' (noprec):   reduce expr --> expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   reduce expr --> expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   shift 102
    action 'OR' (explicit left 9993):   shift 103
    action 'NOT' (noprec):   reduce expr --> expr_tuple_atom
    action 'COLON' (noprec):   reduce expr --> expr_tuple_atom
    action 'SEMICOLON2' (noprec):   reduce expr --> expr_tuple_atom
    action 'COMMA' (explicit left 9991):   shift 110
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   reduce expr --> expr_tuple_atom
    action '#' (noprec):   reduce expr --> expr_tuple_atom
    action '$$' (noprec):   reduce expr --> expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 12:  items:    expr -> 'BRA' . expr_tuple_atoms 'KET'
    lit -> 'BRA' . 'KET'
    expr_app_atom -> 'BRA' . expr 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   shift 52
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 55
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 11
    goto expr_tuple_atoms: 13
state 13:  items:    expr -> 'BRA' expr_tuple_atoms . 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   shift 14
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 14:  items:    expr -> 'BRA' expr_tuple_atoms 'KET' . 
  actions:    action 'EOF' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'IF' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'THEN' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'ELSE' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'FUN' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'ARROW' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'LET' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'REC' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'IN' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'TRUE' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'FALSE' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'BRA' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'KET' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'PLUS' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'MINUS' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'STAR' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'SLASH' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'PERCENT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'LT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'GT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'LEQ' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'GEQ' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'EQ' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'NEQ' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'AND' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'OR' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'NOT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'COLON' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'SEMICOLON2' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'COMMA' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'STRING' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'ID' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'CHAR' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'FLOAT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'INT' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action 'error' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action '#' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
    action '$$' (noprec):   reduce expr --> 'BRA' expr_tuple_atoms 'KET'
  immediate action:   reduce expr --> 'BRA' expr_tuple_atoms 'KET'  gotos:state 15:  items:    binding -> 'LET' . 'ID' 'EQ' expr
    binding -> 'LET' . 'ID' 'COLON' ty 'EQ' expr
    binding -> 'LET' . 'REC' 'ID' 'EQ' expr
    binding -> 'LET' . 'REC' 'ID' 'COLON' ty 'EQ' expr
    binding -> 'LET' . 'ID' params 'EQ' expr
    binding -> 'LET' . 'REC' 'ID' params 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   shift 23
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 16
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 16:  items:    binding -> 'LET' 'ID' . 'EQ' expr
    binding -> 'LET' 'ID' . 'COLON' ty 'EQ' expr
    binding -> 'LET' 'ID' . params 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 38
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 17
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   shift 19
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 37
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto param: 43
    goto params: 31
state 17:  items:    binding -> 'LET' 'ID' 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 18
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 18:  items:    binding -> 'LET' 'ID' 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'ID' 'EQ' expr  gotos:state 19:  items:    binding -> 'LET' 'ID' 'COLON' . ty 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 20
    goto ty_tuple: 117
state 20:  items:    binding -> 'LET' 'ID' 'COLON' ty . 'EQ' expr
    ty -> ty . 'ARROW' ty
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 21
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 21:  items:    binding -> 'LET' 'ID' 'COLON' ty 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 22
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 22:  items:    binding -> 'LET' 'ID' 'COLON' ty 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'ID' 'COLON' ty 'EQ' expr  gotos:state 23:  items:    binding -> 'LET' 'REC' . 'ID' 'EQ' expr
    binding -> 'LET' 'REC' . 'ID' 'COLON' ty 'EQ' expr
    binding -> 'LET' 'REC' . 'ID' params 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 24
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 24:  items:    binding -> 'LET' 'REC' 'ID' . 'EQ' expr
    binding -> 'LET' 'REC' 'ID' . 'COLON' ty 'EQ' expr
    binding -> 'LET' 'REC' 'ID' . params 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 38
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 25
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   shift 27
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 37
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto param: 43
    goto params: 34
state 25:  items:    binding -> 'LET' 'REC' 'ID' 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 26
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 26:  items:    binding -> 'LET' 'REC' 'ID' 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'REC' 'ID' 'EQ' expr  gotos:state 27:  items:    binding -> 'LET' 'REC' 'ID' 'COLON' . ty 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 28
    goto ty_tuple: 117
state 28:  items:    binding -> 'LET' 'REC' 'ID' 'COLON' ty . 'EQ' expr
    ty -> ty . 'ARROW' ty
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 29
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 29:  items:    binding -> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 30
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 30:  items:    binding -> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'REC' 'ID' 'COLON' ty 'EQ' expr  gotos:state 31:  items:    binding -> 'LET' 'ID' params . 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 32
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 32:  items:    binding -> 'LET' 'ID' params 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 33
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 33:  items:    binding -> 'LET' 'ID' params 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'ID' params 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'ID' params 'EQ' expr  gotos:state 34:  items:    binding -> 'LET' 'REC' 'ID' params . 'EQ' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (explicit left 9995):   shift 35
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 35:  items:    binding -> 'LET' 'REC' 'ID' params 'EQ' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 36
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 36:  items:    binding -> 'LET' 'REC' 'ID' params 'EQ' expr . 
  actions:    action 'EOF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'IF' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'THEN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'ELSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'FUN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'ARROW' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'LET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'REC' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'IN' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'TRUE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'FALSE' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'BRA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'KET' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'PLUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'MINUS' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'STAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'SLASH' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'PERCENT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'LT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'GT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'LEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'GEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'EQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'NEQ' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'AND' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'OR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'NOT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'COLON' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'SEMICOLON2' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'COMMA' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'STRING' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'ID' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'CHAR' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'FLOAT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'INT' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action 'error' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action '#' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
    action '$$' (explicit left 9995):   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr
  immediate action:   reduce binding --> 'LET' 'REC' 'ID' params 'EQ' expr  gotos:state 37:  items:    param -> 'ID' . 
  actions:    action 'EOF' (noprec):   reduce param --> 'ID'
    action 'IF' (noprec):   reduce param --> 'ID'
    action 'THEN' (noprec):   reduce param --> 'ID'
    action 'ELSE' (noprec):   reduce param --> 'ID'
    action 'FUN' (noprec):   reduce param --> 'ID'
    action 'ARROW' (noprec):   reduce param --> 'ID'
    action 'LET' (noprec):   reduce param --> 'ID'
    action 'REC' (noprec):   reduce param --> 'ID'
    action 'IN' (noprec):   reduce param --> 'ID'
    action 'TRUE' (noprec):   reduce param --> 'ID'
    action 'FALSE' (noprec):   reduce param --> 'ID'
    action 'BRA' (noprec):   reduce param --> 'ID'
    action 'KET' (noprec):   reduce param --> 'ID'
    action 'PLUS' (noprec):   reduce param --> 'ID'
    action 'MINUS' (noprec):   reduce param --> 'ID'
    action 'STAR' (noprec):   reduce param --> 'ID'
    action 'SLASH' (noprec):   reduce param --> 'ID'
    action 'PERCENT' (noprec):   reduce param --> 'ID'
    action 'LT' (noprec):   reduce param --> 'ID'
    action 'GT' (noprec):   reduce param --> 'ID'
    action 'LEQ' (noprec):   reduce param --> 'ID'
    action 'GEQ' (noprec):   reduce param --> 'ID'
    action 'EQ' (noprec):   reduce param --> 'ID'
    action 'NEQ' (noprec):   reduce param --> 'ID'
    action 'AND' (noprec):   reduce param --> 'ID'
    action 'OR' (noprec):   reduce param --> 'ID'
    action 'NOT' (noprec):   reduce param --> 'ID'
    action 'COLON' (noprec):   reduce param --> 'ID'
    action 'SEMICOLON2' (noprec):   reduce param --> 'ID'
    action 'COMMA' (noprec):   reduce param --> 'ID'
    action 'STRING' (noprec):   reduce param --> 'ID'
    action 'ID' (noprec):   reduce param --> 'ID'
    action 'CHAR' (noprec):   reduce param --> 'ID'
    action 'FLOAT' (noprec):   reduce param --> 'ID'
    action 'INT' (noprec):   reduce param --> 'ID'
    action 'error' (noprec):   reduce param --> 'ID'
    action '#' (noprec):   reduce param --> 'ID'
    action '$$' (noprec):   reduce param --> 'ID'
  immediate action:   reduce param --> 'ID'  gotos:state 38:  items:    param -> 'BRA' . 'ID' 'COLON' ty 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 39
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 39:  items:    param -> 'BRA' 'ID' . 'COLON' ty 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   shift 40
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 40:  items:    param -> 'BRA' 'ID' 'COLON' . ty 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 41
    goto ty_tuple: 117
state 41:  items:    param -> 'BRA' 'ID' 'COLON' ty . 'KET'
    ty -> ty . 'ARROW' ty
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   shift 42
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 42:  items:    param -> 'BRA' 'ID' 'COLON' ty 'KET' . 
  actions:    action 'EOF' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'IF' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'THEN' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'ELSE' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'FUN' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'ARROW' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'LET' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'REC' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'IN' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'TRUE' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'FALSE' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'BRA' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'KET' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'PLUS' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'MINUS' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'STAR' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'SLASH' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'PERCENT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'LT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'GT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'LEQ' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'GEQ' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'EQ' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'NEQ' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'AND' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'OR' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'NOT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'COLON' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'SEMICOLON2' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'COMMA' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'STRING' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'ID' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'CHAR' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'FLOAT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'INT' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action 'error' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action '#' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
    action '$$' (noprec):   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'
  immediate action:   reduce param --> 'BRA' 'ID' 'COLON' ty 'KET'  gotos:state 43:  items:    params -> param . 
    params -> param . params
  actions:    action 'EOF' (noprec):   reduce params --> param
    action 'IF' (noprec):   reduce params --> param
    action 'THEN' (noprec):   reduce params --> param
    action 'ELSE' (noprec):   reduce params --> param
    action 'FUN' (noprec):   reduce params --> param
    action 'ARROW' (noprec):   reduce params --> param
    action 'LET' (noprec):   reduce params --> param
    action 'REC' (noprec):   reduce params --> param
    action 'IN' (noprec):   reduce params --> param
    action 'TRUE' (noprec):   reduce params --> param
    action 'FALSE' (noprec):   reduce params --> param
    action 'BRA' (noprec):   shift 38
    action 'KET' (noprec):   reduce params --> param
    action 'PLUS' (noprec):   reduce params --> param
    action 'MINUS' (noprec):   reduce params --> param
    action 'STAR' (noprec):   reduce params --> param
    action 'SLASH' (noprec):   reduce params --> param
    action 'PERCENT' (noprec):   reduce params --> param
    action 'LT' (noprec):   reduce params --> param
    action 'GT' (noprec):   reduce params --> param
    action 'LEQ' (noprec):   reduce params --> param
    action 'GEQ' (noprec):   reduce params --> param
    action 'EQ' (noprec):   reduce params --> param
    action 'NEQ' (noprec):   reduce params --> param
    action 'AND' (noprec):   reduce params --> param
    action 'OR' (noprec):   reduce params --> param
    action 'NOT' (noprec):   reduce params --> param
    action 'COLON' (noprec):   reduce params --> param
    action 'SEMICOLON2' (noprec):   reduce params --> param
    action 'COMMA' (noprec):   reduce params --> param
    action 'STRING' (noprec):   reduce params --> param
    action 'ID' (noprec):   shift 37
    action 'CHAR' (noprec):   reduce params --> param
    action 'FLOAT' (noprec):   reduce params --> param
    action 'INT' (noprec):   reduce params --> param
    action 'error' (noprec):   reduce params --> param
    action '#' (noprec):   reduce params --> param
    action '$$' (noprec):   reduce params --> param
  immediate action: <none>  gotos:    goto param: 43
    goto params: 44
state 44:  items:    params -> param params . 
  actions:    action 'EOF' (noprec):   reduce params --> param params
    action 'IF' (noprec):   reduce params --> param params
    action 'THEN' (noprec):   reduce params --> param params
    action 'ELSE' (noprec):   reduce params --> param params
    action 'FUN' (noprec):   reduce params --> param params
    action 'ARROW' (noprec):   reduce params --> param params
    action 'LET' (noprec):   reduce params --> param params
    action 'REC' (noprec):   reduce params --> param params
    action 'IN' (noprec):   reduce params --> param params
    action 'TRUE' (noprec):   reduce params --> param params
    action 'FALSE' (noprec):   reduce params --> param params
    action 'BRA' (noprec):   reduce params --> param params
    action 'KET' (noprec):   reduce params --> param params
    action 'PLUS' (noprec):   reduce params --> param params
    action 'MINUS' (noprec):   reduce params --> param params
    action 'STAR' (noprec):   reduce params --> param params
    action 'SLASH' (noprec):   reduce params --> param params
    action 'PERCENT' (noprec):   reduce params --> param params
    action 'LT' (noprec):   reduce params --> param params
    action 'GT' (noprec):   reduce params --> param params
    action 'LEQ' (noprec):   reduce params --> param params
    action 'GEQ' (noprec):   reduce params --> param params
    action 'EQ' (noprec):   reduce params --> param params
    action 'NEQ' (noprec):   reduce params --> param params
    action 'AND' (noprec):   reduce params --> param params
    action 'OR' (noprec):   reduce params --> param params
    action 'NOT' (noprec):   reduce params --> param params
    action 'COLON' (noprec):   reduce params --> param params
    action 'SEMICOLON2' (noprec):   reduce params --> param params
    action 'COMMA' (noprec):   reduce params --> param params
    action 'STRING' (noprec):   reduce params --> param params
    action 'ID' (noprec):   reduce params --> param params
    action 'CHAR' (noprec):   reduce params --> param params
    action 'FLOAT' (noprec):   reduce params --> param params
    action 'INT' (noprec):   reduce params --> param params
    action 'error' (noprec):   reduce params --> param params
    action '#' (noprec):   reduce params --> param params
    action '$$' (noprec):   reduce params --> param params
  immediate action:   reduce params --> param params  gotos:state 45:  items:    lit -> 'INT' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'INT'
    action 'IF' (noprec):   reduce lit --> 'INT'
    action 'THEN' (noprec):   reduce lit --> 'INT'
    action 'ELSE' (noprec):   reduce lit --> 'INT'
    action 'FUN' (noprec):   reduce lit --> 'INT'
    action 'ARROW' (noprec):   reduce lit --> 'INT'
    action 'LET' (noprec):   reduce lit --> 'INT'
    action 'REC' (noprec):   reduce lit --> 'INT'
    action 'IN' (noprec):   reduce lit --> 'INT'
    action 'TRUE' (noprec):   reduce lit --> 'INT'
    action 'FALSE' (noprec):   reduce lit --> 'INT'
    action 'BRA' (noprec):   reduce lit --> 'INT'
    action 'KET' (noprec):   reduce lit --> 'INT'
    action 'PLUS' (noprec):   reduce lit --> 'INT'
    action 'MINUS' (noprec):   reduce lit --> 'INT'
    action 'STAR' (noprec):   reduce lit --> 'INT'
    action 'SLASH' (noprec):   reduce lit --> 'INT'
    action 'PERCENT' (noprec):   reduce lit --> 'INT'
    action 'LT' (noprec):   reduce lit --> 'INT'
    action 'GT' (noprec):   reduce lit --> 'INT'
    action 'LEQ' (noprec):   reduce lit --> 'INT'
    action 'GEQ' (noprec):   reduce lit --> 'INT'
    action 'EQ' (noprec):   reduce lit --> 'INT'
    action 'NEQ' (noprec):   reduce lit --> 'INT'
    action 'AND' (noprec):   reduce lit --> 'INT'
    action 'OR' (noprec):   reduce lit --> 'INT'
    action 'NOT' (noprec):   reduce lit --> 'INT'
    action 'COLON' (noprec):   reduce lit --> 'INT'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'INT'
    action 'COMMA' (noprec):   reduce lit --> 'INT'
    action 'STRING' (noprec):   reduce lit --> 'INT'
    action 'ID' (noprec):   reduce lit --> 'INT'
    action 'CHAR' (noprec):   reduce lit --> 'INT'
    action 'FLOAT' (noprec):   reduce lit --> 'INT'
    action 'INT' (noprec):   reduce lit --> 'INT'
    action 'error' (noprec):   reduce lit --> 'INT'
    action '#' (noprec):   reduce lit --> 'INT'
    action '$$' (noprec):   reduce lit --> 'INT'
  immediate action:   reduce lit --> 'INT'  gotos:state 46:  items:    lit -> 'FLOAT' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'FLOAT'
    action 'IF' (noprec):   reduce lit --> 'FLOAT'
    action 'THEN' (noprec):   reduce lit --> 'FLOAT'
    action 'ELSE' (noprec):   reduce lit --> 'FLOAT'
    action 'FUN' (noprec):   reduce lit --> 'FLOAT'
    action 'ARROW' (noprec):   reduce lit --> 'FLOAT'
    action 'LET' (noprec):   reduce lit --> 'FLOAT'
    action 'REC' (noprec):   reduce lit --> 'FLOAT'
    action 'IN' (noprec):   reduce lit --> 'FLOAT'
    action 'TRUE' (noprec):   reduce lit --> 'FLOAT'
    action 'FALSE' (noprec):   reduce lit --> 'FLOAT'
    action 'BRA' (noprec):   reduce lit --> 'FLOAT'
    action 'KET' (noprec):   reduce lit --> 'FLOAT'
    action 'PLUS' (noprec):   reduce lit --> 'FLOAT'
    action 'MINUS' (noprec):   reduce lit --> 'FLOAT'
    action 'STAR' (noprec):   reduce lit --> 'FLOAT'
    action 'SLASH' (noprec):   reduce lit --> 'FLOAT'
    action 'PERCENT' (noprec):   reduce lit --> 'FLOAT'
    action 'LT' (noprec):   reduce lit --> 'FLOAT'
    action 'GT' (noprec):   reduce lit --> 'FLOAT'
    action 'LEQ' (noprec):   reduce lit --> 'FLOAT'
    action 'GEQ' (noprec):   reduce lit --> 'FLOAT'
    action 'EQ' (noprec):   reduce lit --> 'FLOAT'
    action 'NEQ' (noprec):   reduce lit --> 'FLOAT'
    action 'AND' (noprec):   reduce lit --> 'FLOAT'
    action 'OR' (noprec):   reduce lit --> 'FLOAT'
    action 'NOT' (noprec):   reduce lit --> 'FLOAT'
    action 'COLON' (noprec):   reduce lit --> 'FLOAT'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'FLOAT'
    action 'COMMA' (noprec):   reduce lit --> 'FLOAT'
    action 'STRING' (noprec):   reduce lit --> 'FLOAT'
    action 'ID' (noprec):   reduce lit --> 'FLOAT'
    action 'CHAR' (noprec):   reduce lit --> 'FLOAT'
    action 'FLOAT' (noprec):   reduce lit --> 'FLOAT'
    action 'INT' (noprec):   reduce lit --> 'FLOAT'
    action 'error' (noprec):   reduce lit --> 'FLOAT'
    action '#' (noprec):   reduce lit --> 'FLOAT'
    action '$$' (noprec):   reduce lit --> 'FLOAT'
  immediate action:   reduce lit --> 'FLOAT'  gotos:state 47:  items:    lit -> 'STRING' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'STRING'
    action 'IF' (noprec):   reduce lit --> 'STRING'
    action 'THEN' (noprec):   reduce lit --> 'STRING'
    action 'ELSE' (noprec):   reduce lit --> 'STRING'
    action 'FUN' (noprec):   reduce lit --> 'STRING'
    action 'ARROW' (noprec):   reduce lit --> 'STRING'
    action 'LET' (noprec):   reduce lit --> 'STRING'
    action 'REC' (noprec):   reduce lit --> 'STRING'
    action 'IN' (noprec):   reduce lit --> 'STRING'
    action 'TRUE' (noprec):   reduce lit --> 'STRING'
    action 'FALSE' (noprec):   reduce lit --> 'STRING'
    action 'BRA' (noprec):   reduce lit --> 'STRING'
    action 'KET' (noprec):   reduce lit --> 'STRING'
    action 'PLUS' (noprec):   reduce lit --> 'STRING'
    action 'MINUS' (noprec):   reduce lit --> 'STRING'
    action 'STAR' (noprec):   reduce lit --> 'STRING'
    action 'SLASH' (noprec):   reduce lit --> 'STRING'
    action 'PERCENT' (noprec):   reduce lit --> 'STRING'
    action 'LT' (noprec):   reduce lit --> 'STRING'
    action 'GT' (noprec):   reduce lit --> 'STRING'
    action 'LEQ' (noprec):   reduce lit --> 'STRING'
    action 'GEQ' (noprec):   reduce lit --> 'STRING'
    action 'EQ' (noprec):   reduce lit --> 'STRING'
    action 'NEQ' (noprec):   reduce lit --> 'STRING'
    action 'AND' (noprec):   reduce lit --> 'STRING'
    action 'OR' (noprec):   reduce lit --> 'STRING'
    action 'NOT' (noprec):   reduce lit --> 'STRING'
    action 'COLON' (noprec):   reduce lit --> 'STRING'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'STRING'
    action 'COMMA' (noprec):   reduce lit --> 'STRING'
    action 'STRING' (noprec):   reduce lit --> 'STRING'
    action 'ID' (noprec):   reduce lit --> 'STRING'
    action 'CHAR' (noprec):   reduce lit --> 'STRING'
    action 'FLOAT' (noprec):   reduce lit --> 'STRING'
    action 'INT' (noprec):   reduce lit --> 'STRING'
    action 'error' (noprec):   reduce lit --> 'STRING'
    action '#' (noprec):   reduce lit --> 'STRING'
    action '$$' (noprec):   reduce lit --> 'STRING'
  immediate action:   reduce lit --> 'STRING'  gotos:state 48:  items:    lit -> 'CHAR' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'CHAR'
    action 'IF' (noprec):   reduce lit --> 'CHAR'
    action 'THEN' (noprec):   reduce lit --> 'CHAR'
    action 'ELSE' (noprec):   reduce lit --> 'CHAR'
    action 'FUN' (noprec):   reduce lit --> 'CHAR'
    action 'ARROW' (noprec):   reduce lit --> 'CHAR'
    action 'LET' (noprec):   reduce lit --> 'CHAR'
    action 'REC' (noprec):   reduce lit --> 'CHAR'
    action 'IN' (noprec):   reduce lit --> 'CHAR'
    action 'TRUE' (noprec):   reduce lit --> 'CHAR'
    action 'FALSE' (noprec):   reduce lit --> 'CHAR'
    action 'BRA' (noprec):   reduce lit --> 'CHAR'
    action 'KET' (noprec):   reduce lit --> 'CHAR'
    action 'PLUS' (noprec):   reduce lit --> 'CHAR'
    action 'MINUS' (noprec):   reduce lit --> 'CHAR'
    action 'STAR' (noprec):   reduce lit --> 'CHAR'
    action 'SLASH' (noprec):   reduce lit --> 'CHAR'
    action 'PERCENT' (noprec):   reduce lit --> 'CHAR'
    action 'LT' (noprec):   reduce lit --> 'CHAR'
    action 'GT' (noprec):   reduce lit --> 'CHAR'
    action 'LEQ' (noprec):   reduce lit --> 'CHAR'
    action 'GEQ' (noprec):   reduce lit --> 'CHAR'
    action 'EQ' (noprec):   reduce lit --> 'CHAR'
    action 'NEQ' (noprec):   reduce lit --> 'CHAR'
    action 'AND' (noprec):   reduce lit --> 'CHAR'
    action 'OR' (noprec):   reduce lit --> 'CHAR'
    action 'NOT' (noprec):   reduce lit --> 'CHAR'
    action 'COLON' (noprec):   reduce lit --> 'CHAR'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'CHAR'
    action 'COMMA' (noprec):   reduce lit --> 'CHAR'
    action 'STRING' (noprec):   reduce lit --> 'CHAR'
    action 'ID' (noprec):   reduce lit --> 'CHAR'
    action 'CHAR' (noprec):   reduce lit --> 'CHAR'
    action 'FLOAT' (noprec):   reduce lit --> 'CHAR'
    action 'INT' (noprec):   reduce lit --> 'CHAR'
    action 'error' (noprec):   reduce lit --> 'CHAR'
    action '#' (noprec):   reduce lit --> 'CHAR'
    action '$$' (noprec):   reduce lit --> 'CHAR'
  immediate action:   reduce lit --> 'CHAR'  gotos:state 49:  items:    lit -> 'TRUE' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'TRUE'
    action 'IF' (noprec):   reduce lit --> 'TRUE'
    action 'THEN' (noprec):   reduce lit --> 'TRUE'
    action 'ELSE' (noprec):   reduce lit --> 'TRUE'
    action 'FUN' (noprec):   reduce lit --> 'TRUE'
    action 'ARROW' (noprec):   reduce lit --> 'TRUE'
    action 'LET' (noprec):   reduce lit --> 'TRUE'
    action 'REC' (noprec):   reduce lit --> 'TRUE'
    action 'IN' (noprec):   reduce lit --> 'TRUE'
    action 'TRUE' (noprec):   reduce lit --> 'TRUE'
    action 'FALSE' (noprec):   reduce lit --> 'TRUE'
    action 'BRA' (noprec):   reduce lit --> 'TRUE'
    action 'KET' (noprec):   reduce lit --> 'TRUE'
    action 'PLUS' (noprec):   reduce lit --> 'TRUE'
    action 'MINUS' (noprec):   reduce lit --> 'TRUE'
    action 'STAR' (noprec):   reduce lit --> 'TRUE'
    action 'SLASH' (noprec):   reduce lit --> 'TRUE'
    action 'PERCENT' (noprec):   reduce lit --> 'TRUE'
    action 'LT' (noprec):   reduce lit --> 'TRUE'
    action 'GT' (noprec):   reduce lit --> 'TRUE'
    action 'LEQ' (noprec):   reduce lit --> 'TRUE'
    action 'GEQ' (noprec):   reduce lit --> 'TRUE'
    action 'EQ' (noprec):   reduce lit --> 'TRUE'
    action 'NEQ' (noprec):   reduce lit --> 'TRUE'
    action 'AND' (noprec):   reduce lit --> 'TRUE'
    action 'OR' (noprec):   reduce lit --> 'TRUE'
    action 'NOT' (noprec):   reduce lit --> 'TRUE'
    action 'COLON' (noprec):   reduce lit --> 'TRUE'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'TRUE'
    action 'COMMA' (noprec):   reduce lit --> 'TRUE'
    action 'STRING' (noprec):   reduce lit --> 'TRUE'
    action 'ID' (noprec):   reduce lit --> 'TRUE'
    action 'CHAR' (noprec):   reduce lit --> 'TRUE'
    action 'FLOAT' (noprec):   reduce lit --> 'TRUE'
    action 'INT' (noprec):   reduce lit --> 'TRUE'
    action 'error' (noprec):   reduce lit --> 'TRUE'
    action '#' (noprec):   reduce lit --> 'TRUE'
    action '$$' (noprec):   reduce lit --> 'TRUE'
  immediate action:   reduce lit --> 'TRUE'  gotos:state 50:  items:    lit -> 'FALSE' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'FALSE'
    action 'IF' (noprec):   reduce lit --> 'FALSE'
    action 'THEN' (noprec):   reduce lit --> 'FALSE'
    action 'ELSE' (noprec):   reduce lit --> 'FALSE'
    action 'FUN' (noprec):   reduce lit --> 'FALSE'
    action 'ARROW' (noprec):   reduce lit --> 'FALSE'
    action 'LET' (noprec):   reduce lit --> 'FALSE'
    action 'REC' (noprec):   reduce lit --> 'FALSE'
    action 'IN' (noprec):   reduce lit --> 'FALSE'
    action 'TRUE' (noprec):   reduce lit --> 'FALSE'
    action 'FALSE' (noprec):   reduce lit --> 'FALSE'
    action 'BRA' (noprec):   reduce lit --> 'FALSE'
    action 'KET' (noprec):   reduce lit --> 'FALSE'
    action 'PLUS' (noprec):   reduce lit --> 'FALSE'
    action 'MINUS' (noprec):   reduce lit --> 'FALSE'
    action 'STAR' (noprec):   reduce lit --> 'FALSE'
    action 'SLASH' (noprec):   reduce lit --> 'FALSE'
    action 'PERCENT' (noprec):   reduce lit --> 'FALSE'
    action 'LT' (noprec):   reduce lit --> 'FALSE'
    action 'GT' (noprec):   reduce lit --> 'FALSE'
    action 'LEQ' (noprec):   reduce lit --> 'FALSE'
    action 'GEQ' (noprec):   reduce lit --> 'FALSE'
    action 'EQ' (noprec):   reduce lit --> 'FALSE'
    action 'NEQ' (noprec):   reduce lit --> 'FALSE'
    action 'AND' (noprec):   reduce lit --> 'FALSE'
    action 'OR' (noprec):   reduce lit --> 'FALSE'
    action 'NOT' (noprec):   reduce lit --> 'FALSE'
    action 'COLON' (noprec):   reduce lit --> 'FALSE'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'FALSE'
    action 'COMMA' (noprec):   reduce lit --> 'FALSE'
    action 'STRING' (noprec):   reduce lit --> 'FALSE'
    action 'ID' (noprec):   reduce lit --> 'FALSE'
    action 'CHAR' (noprec):   reduce lit --> 'FALSE'
    action 'FLOAT' (noprec):   reduce lit --> 'FALSE'
    action 'INT' (noprec):   reduce lit --> 'FALSE'
    action 'error' (noprec):   reduce lit --> 'FALSE'
    action '#' (noprec):   reduce lit --> 'FALSE'
    action '$$' (noprec):   reduce lit --> 'FALSE'
  immediate action:   reduce lit --> 'FALSE'  gotos:state 51:  items:    lit -> 'BRA' . 'KET'
    expr_app_atom -> 'BRA' . expr 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   shift 52
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 55
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 52:  items:    lit -> 'BRA' 'KET' . 
  actions:    action 'EOF' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'IF' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'THEN' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'ELSE' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'FUN' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'ARROW' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'LET' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'REC' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'IN' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'TRUE' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'FALSE' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'BRA' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'KET' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'PLUS' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'MINUS' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'STAR' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'SLASH' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'PERCENT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'LT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'GT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'LEQ' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'GEQ' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'EQ' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'NEQ' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'AND' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'OR' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'NOT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'COLON' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'SEMICOLON2' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'COMMA' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'STRING' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'ID' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'CHAR' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'FLOAT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'INT' (noprec):   reduce lit --> 'BRA' 'KET'
    action 'error' (noprec):   reduce lit --> 'BRA' 'KET'
    action '#' (noprec):   reduce lit --> 'BRA' 'KET'
    action '$$' (noprec):   reduce lit --> 'BRA' 'KET'
  immediate action:   reduce lit --> 'BRA' 'KET'  gotos:state 53:  items:    expr_app_atom -> lit . 
  actions:    action 'EOF' (noprec):   reduce expr_app_atom --> lit
    action 'IF' (noprec):   reduce expr_app_atom --> lit
    action 'THEN' (noprec):   reduce expr_app_atom --> lit
    action 'ELSE' (noprec):   reduce expr_app_atom --> lit
    action 'FUN' (noprec):   reduce expr_app_atom --> lit
    action 'ARROW' (noprec):   reduce expr_app_atom --> lit
    action 'LET' (noprec):   reduce expr_app_atom --> lit
    action 'REC' (noprec):   reduce expr_app_atom --> lit
    action 'IN' (noprec):   reduce expr_app_atom --> lit
    action 'TRUE' (noprec):   reduce expr_app_atom --> lit
    action 'FALSE' (noprec):   reduce expr_app_atom --> lit
    action 'BRA' (noprec):   reduce expr_app_atom --> lit
    action 'KET' (noprec):   reduce expr_app_atom --> lit
    action 'PLUS' (noprec):   reduce expr_app_atom --> lit
    action 'MINUS' (noprec):   reduce expr_app_atom --> lit
    action 'STAR' (noprec):   reduce expr_app_atom --> lit
    action 'SLASH' (noprec):   reduce expr_app_atom --> lit
    action 'PERCENT' (noprec):   reduce expr_app_atom --> lit
    action 'LT' (noprec):   reduce expr_app_atom --> lit
    action 'GT' (noprec):   reduce expr_app_atom --> lit
    action 'LEQ' (noprec):   reduce expr_app_atom --> lit
    action 'GEQ' (noprec):   reduce expr_app_atom --> lit
    action 'EQ' (noprec):   reduce expr_app_atom --> lit
    action 'NEQ' (noprec):   reduce expr_app_atom --> lit
    action 'AND' (noprec):   reduce expr_app_atom --> lit
    action 'OR' (noprec):   reduce expr_app_atom --> lit
    action 'NOT' (noprec):   reduce expr_app_atom --> lit
    action 'COLON' (noprec):   reduce expr_app_atom --> lit
    action 'SEMICOLON2' (noprec):   reduce expr_app_atom --> lit
    action 'COMMA' (noprec):   reduce expr_app_atom --> lit
    action 'STRING' (noprec):   reduce expr_app_atom --> lit
    action 'ID' (noprec):   reduce expr_app_atom --> lit
    action 'CHAR' (noprec):   reduce expr_app_atom --> lit
    action 'FLOAT' (noprec):   reduce expr_app_atom --> lit
    action 'INT' (noprec):   reduce expr_app_atom --> lit
    action 'error' (noprec):   reduce expr_app_atom --> lit
    action '#' (noprec):   reduce expr_app_atom --> lit
    action '$$' (noprec):   reduce expr_app_atom --> lit
  immediate action:   reduce expr_app_atom --> lit  gotos:state 54:  items:    expr_app_atom -> 'ID' . 
  actions:    action 'EOF' (noprec):   reduce expr_app_atom --> 'ID'
    action 'IF' (noprec):   reduce expr_app_atom --> 'ID'
    action 'THEN' (noprec):   reduce expr_app_atom --> 'ID'
    action 'ELSE' (noprec):   reduce expr_app_atom --> 'ID'
    action 'FUN' (noprec):   reduce expr_app_atom --> 'ID'
    action 'ARROW' (noprec):   reduce expr_app_atom --> 'ID'
    action 'LET' (noprec):   reduce expr_app_atom --> 'ID'
    action 'REC' (noprec):   reduce expr_app_atom --> 'ID'
    action 'IN' (noprec):   reduce expr_app_atom --> 'ID'
    action 'TRUE' (noprec):   reduce expr_app_atom --> 'ID'
    action 'FALSE' (noprec):   reduce expr_app_atom --> 'ID'
    action 'BRA' (noprec):   reduce expr_app_atom --> 'ID'
    action 'KET' (noprec):   reduce expr_app_atom --> 'ID'
    action 'PLUS' (noprec):   reduce expr_app_atom --> 'ID'
    action 'MINUS' (noprec):   reduce expr_app_atom --> 'ID'
    action 'STAR' (noprec):   reduce expr_app_atom --> 'ID'
    action 'SLASH' (noprec):   reduce expr_app_atom --> 'ID'
    action 'PERCENT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'LT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'GT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'LEQ' (noprec):   reduce expr_app_atom --> 'ID'
    action 'GEQ' (noprec):   reduce expr_app_atom --> 'ID'
    action 'EQ' (noprec):   reduce expr_app_atom --> 'ID'
    action 'NEQ' (noprec):   reduce expr_app_atom --> 'ID'
    action 'AND' (noprec):   reduce expr_app_atom --> 'ID'
    action 'OR' (noprec):   reduce expr_app_atom --> 'ID'
    action 'NOT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'COLON' (noprec):   reduce expr_app_atom --> 'ID'
    action 'SEMICOLON2' (noprec):   reduce expr_app_atom --> 'ID'
    action 'COMMA' (noprec):   reduce expr_app_atom --> 'ID'
    action 'STRING' (noprec):   reduce expr_app_atom --> 'ID'
    action 'ID' (noprec):   reduce expr_app_atom --> 'ID'
    action 'CHAR' (noprec):   reduce expr_app_atom --> 'ID'
    action 'FLOAT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'INT' (noprec):   reduce expr_app_atom --> 'ID'
    action 'error' (noprec):   reduce expr_app_atom --> 'ID'
    action '#' (noprec):   reduce expr_app_atom --> 'ID'
    action '$$' (noprec):   reduce expr_app_atom --> 'ID'
  immediate action:   reduce expr_app_atom --> 'ID'  gotos:state 55:  items:    expr_app_atom -> 'BRA' expr . 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   shift 56
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 56:  items:    expr_app_atom -> 'BRA' expr 'KET' . 
  actions:    action 'EOF' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'IF' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'THEN' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'ELSE' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'FUN' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'ARROW' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'LET' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'REC' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'IN' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'TRUE' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'FALSE' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'BRA' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'KET' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'PLUS' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'MINUS' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'STAR' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'SLASH' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'PERCENT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'LT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'GT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'LEQ' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'GEQ' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'EQ' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'NEQ' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'AND' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'OR' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'NOT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'COLON' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'SEMICOLON2' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'COMMA' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'STRING' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'ID' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'CHAR' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'FLOAT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'INT' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action 'error' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action '#' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
    action '$$' (noprec):   reduce expr_app_atom --> 'BRA' expr 'KET'
  immediate action:   reduce expr_app_atom --> 'BRA' expr 'KET'  gotos:state 57:  items:    expr_tuple_atom -> expr_app_atom . 
  actions:    action 'EOF' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'IF' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'THEN' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'ELSE' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'FUN' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'ARROW' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'LET' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'REC' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'IN' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'TRUE' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'FALSE' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'BRA' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'KET' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'PLUS' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'MINUS' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'STAR' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'SLASH' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'PERCENT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'LT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'GT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'LEQ' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'GEQ' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'EQ' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'NEQ' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'AND' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'OR' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'NOT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'COLON' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'SEMICOLON2' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'COMMA' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'STRING' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'ID' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'CHAR' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'FLOAT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'INT' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action 'error' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action '#' (noprec):   reduce expr_tuple_atom --> expr_app_atom
    action '$$' (noprec):   reduce expr_tuple_atom --> expr_app_atom
  immediate action:   reduce expr_tuple_atom --> expr_app_atom  gotos:state 58:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> 'NOT' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'IF' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'THEN' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'ELSE' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'FUN' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'ARROW' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'LET' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'REC' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'IN' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'PLUS' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'MINUS' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'STAR' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'SLASH' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'GT' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'LEQ' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'GEQ' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'EQ' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'NEQ' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'AND' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'OR' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'NOT' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'COLON' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'SEMICOLON2' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'COMMA' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action '#' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
    action '$$' (explicit nonassoc 9999):   reduce expr_tuple_atom --> 'NOT' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 59:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> 'MINUS' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'IF' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'THEN' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'ELSE' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'FUN' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'ARROW' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'LET' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'REC' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'IN' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'PLUS' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'MINUS' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'STAR' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'SLASH' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'GT' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'LEQ' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'GEQ' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'EQ' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'NEQ' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'AND' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'OR' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'NOT' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'COLON' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'SEMICOLON2' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'COMMA' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action '#' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
    action '$$' (explicit nonassoc 10000):   reduce expr_tuple_atom --> 'MINUS' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 60:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'PLUS' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'IF' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'THEN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'ELSE' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'FUN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'ARROW' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'LET' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'REC' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'IN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'MINUS' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'GT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'LEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'GEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'EQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'NEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'AND' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'OR' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'NOT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'COLON' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'COMMA' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action '#' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
    action '$$' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'PLUS' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 61:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'MINUS' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'IF' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'THEN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'ELSE' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'FUN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'ARROW' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'LET' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'REC' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'IN' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'MINUS' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'GT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'LEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'GEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'EQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'NEQ' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'AND' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'OR' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'NOT' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'COLON' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'COMMA' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action '#' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
    action '$$' (explicit left 9996):   reduce expr_tuple_atom --> expr_tuple_atom 'MINUS' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 62:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'STAR' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'IF' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'THEN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'ELSE' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'FUN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'ARROW' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'LET' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'REC' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'IN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'PLUS' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'MINUS' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'STAR' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'SLASH' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'GT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'LEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'GEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'EQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'NEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'AND' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'OR' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'NOT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'COLON' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'COMMA' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action '#' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
    action '$$' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'STAR' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 63:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'SLASH' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'IF' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'THEN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'ELSE' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'FUN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'ARROW' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'LET' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'REC' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'IN' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'PLUS' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'MINUS' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'STAR' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'SLASH' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'GT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'LEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'GEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'EQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'NEQ' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'AND' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'OR' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'NOT' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'COLON' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'COMMA' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action '#' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
    action '$$' (explicit left 9997):   reduce expr_tuple_atom --> expr_tuple_atom 'SLASH' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 64:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'PERCENT' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'IF' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'THEN' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'ELSE' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'FUN' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'ARROW' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'LET' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'REC' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'IN' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   shift 102
    action 'OR' (explicit left 9993):   shift 103
    action 'NOT' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'COLON' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'SEMICOLON2' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'COMMA' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action '#' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
    action '$$' (noprec):   reduce expr_tuple_atom --> expr_tuple_atom 'PERCENT' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 65:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'EQ' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'EQ' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 66:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'NEQ' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'NEQ' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 67:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'LT' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LT' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 68:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'GT' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GT' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 69:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'LEQ' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'LEQ' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 70:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'GEQ' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'IF' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'THEN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'ELSE' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'FUN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'ARROW' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'LET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'REC' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'IN' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'GT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'LEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'GEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'EQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'NEQ' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'AND' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'OR' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'NOT' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'COLON' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'COMMA' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action '#' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
    action '$$' (explicit left 9995):   reduce expr_tuple_atom --> expr_tuple_atom 'GEQ' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 71:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'AND' expr_tuple_atom . 
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
  actions:    action 'EOF' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'IF' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'THEN' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'ELSE' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'FUN' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'ARROW' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'LET' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'REC' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'IN' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'OR' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'NOT' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'COLON' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'COMMA' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action '#' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
    action '$$' (explicit left 9994):   reduce expr_tuple_atom --> expr_tuple_atom 'AND' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 72:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom 'OR' expr_tuple_atom . 
  actions:    action 'EOF' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'IF' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'THEN' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'ELSE' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'FUN' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'ARROW' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'LET' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'REC' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'IN' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   shift 102
    action 'OR' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'NOT' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'COLON' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'SEMICOLON2' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'COMMA' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action '#' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
    action '$$' (explicit left 9993):   reduce expr_tuple_atom --> expr_tuple_atom 'OR' expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 73:  items:    expr_tuple_atom -> expr_tuple_atom . expr_app_atom
    expr_tuple_atom -> expr_tuple_atom . 'PLUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'MINUS' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'STAR' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'SLASH' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'PERCENT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'EQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'NEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GT' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'LEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'GEQ' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'AND' expr_tuple_atom
    expr_tuple_atom -> expr_tuple_atom . 'OR' expr_tuple_atom
    expr_tuple_atoms -> expr_tuple_atom . 
    expr_tuple_atoms -> expr_tuple_atom . 'COMMA' expr_tuple_atoms
  actions:    action 'EOF' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'IF' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'THEN' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'ELSE' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'FUN' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'ARROW' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'LET' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'REC' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'IN' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'PLUS' (explicit left 9996):   shift 91
    action 'MINUS' (explicit left 9996):   shift 92
    action 'STAR' (explicit left 9997):   shift 93
    action 'SLASH' (explicit left 9997):   shift 94
    action 'PERCENT' (noprec):   shift 95
    action 'LT' (explicit left 9995):   shift 98
    action 'GT' (explicit left 9995):   shift 99
    action 'LEQ' (explicit left 9995):   shift 100
    action 'GEQ' (explicit left 9995):   shift 101
    action 'EQ' (explicit left 9995):   shift 96
    action 'NEQ' (explicit left 9995):   shift 97
    action 'AND' (explicit left 9994):   shift 102
    action 'OR' (explicit left 9993):   shift 103
    action 'NOT' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'COLON' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'SEMICOLON2' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action 'COMMA' (explicit left 9991):   shift 110
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action '#' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
    action '$$' (noprec):   reduce expr_tuple_atoms --> expr_tuple_atom
  immediate action: <none>  gotos:    goto lit: 53
    goto expr_app_atom: 74
state 74:  items:    expr_tuple_atom -> expr_tuple_atom expr_app_atom . 
  actions:    action 'EOF' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'IF' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'THEN' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'ELSE' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'FUN' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'ARROW' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'LET' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'REC' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'IN' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'TRUE' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'FALSE' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'BRA' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'KET' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'PLUS' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'MINUS' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'STAR' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'SLASH' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'PERCENT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'LT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'GT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'LEQ' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'GEQ' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'EQ' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'NEQ' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'AND' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'OR' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'NOT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'COLON' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'SEMICOLON2' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'COMMA' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'STRING' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'ID' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'CHAR' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'FLOAT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'INT' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action 'error' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action '#' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
    action '$$' (explicit left 9998):   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom
  immediate action:   reduce expr_tuple_atom --> expr_tuple_atom expr_app_atom  gotos:state 75:  items:    expr_tuple_atom -> 'FUN' . 'ID' 'ARROW' expr
    expr_tuple_atom -> 'FUN' . 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 79
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 76
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 76:  items:    expr_tuple_atom -> 'FUN' 'ID' . 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 77
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 77:  items:    expr_tuple_atom -> 'FUN' 'ID' 'ARROW' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 78
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 78:  items:    expr_tuple_atom -> 'FUN' 'ID' 'ARROW' expr . 
  actions:    action 'EOF' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'IF' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'THEN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'ELSE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'FUN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'ARROW' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'LET' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'REC' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'IN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'TRUE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'FALSE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'BRA' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'KET' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'PLUS' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'MINUS' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'STAR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'SLASH' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'PERCENT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'LT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'GT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'LEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'GEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'EQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'NEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'AND' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'OR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'NOT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'COLON' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'SEMICOLON2' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'COMMA' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'STRING' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'ID' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'CHAR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'FLOAT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'INT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action 'error' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action '#' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
    action '$$' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr
  immediate action:   reduce expr_tuple_atom --> 'FUN' 'ID' 'ARROW' expr  gotos:state 79:  items:    expr_tuple_atom -> 'FUN' 'BRA' . 'ID' 'COLON' ty 'KET' 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 80
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 80:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' . 'COLON' ty 'KET' 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   shift 81
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 81:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' 'COLON' . ty 'KET' 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 82
    goto ty_tuple: 117
state 82:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' 'COLON' ty . 'KET' 'ARROW' expr
    ty -> ty . 'ARROW' ty
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   shift 83
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 83:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' . 'ARROW' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 84
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 84:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 85
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 85:  items:    expr_tuple_atom -> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr . 
  actions:    action 'EOF' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'IF' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'THEN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'ELSE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'FUN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'ARROW' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'LET' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'REC' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'IN' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'TRUE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'FALSE' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'BRA' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'KET' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'PLUS' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'MINUS' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'STAR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'SLASH' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'PERCENT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'LT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'GT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'LEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'GEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'EQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'NEQ' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'AND' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'OR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'NOT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'COLON' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'SEMICOLON2' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'COMMA' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'STRING' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'ID' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'CHAR' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'FLOAT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'INT' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action 'error' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action '#' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
    action '$$' (explicit right 9992):   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr
  immediate action:   reduce expr_tuple_atom --> 'FUN' 'BRA' 'ID' 'COLON' ty 'KET' 'ARROW' expr  gotos:state 86:  items:    expr_tuple_atom -> binding . 'IN' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   shift 87
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 87:  items:    expr_tuple_atom -> binding 'IN' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 88
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 88:  items:    expr_tuple_atom -> binding 'IN' expr . 
  actions:    action 'EOF' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'IF' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'THEN' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'ELSE' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'FUN' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'ARROW' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'LET' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'REC' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'IN' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'TRUE' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'FALSE' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'BRA' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'KET' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'PLUS' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'MINUS' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'STAR' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'SLASH' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'PERCENT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'LT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'GT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'LEQ' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'GEQ' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'EQ' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'NEQ' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'AND' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'OR' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'NOT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'COLON' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'SEMICOLON2' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'COMMA' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'STRING' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'ID' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'CHAR' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'FLOAT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'INT' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action 'error' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action '#' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
    action '$$' (noprec):   reduce expr_tuple_atom --> binding 'IN' expr
  immediate action:   reduce expr_tuple_atom --> binding 'IN' expr  gotos:state 89:  items:    expr_tuple_atom -> 'NOT' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 58
state 90:  items:    expr_tuple_atom -> 'MINUS' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 59
state 91:  items:    expr_tuple_atom -> expr_tuple_atom 'PLUS' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 60
state 92:  items:    expr_tuple_atom -> expr_tuple_atom 'MINUS' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 61
state 93:  items:    expr_tuple_atom -> expr_tuple_atom 'STAR' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 62
state 94:  items:    expr_tuple_atom -> expr_tuple_atom 'SLASH' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 63
state 95:  items:    expr_tuple_atom -> expr_tuple_atom 'PERCENT' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 64
state 96:  items:    expr_tuple_atom -> expr_tuple_atom 'EQ' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 65
state 97:  items:    expr_tuple_atom -> expr_tuple_atom 'NEQ' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 66
state 98:  items:    expr_tuple_atom -> expr_tuple_atom 'LT' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 67
state 99:  items:    expr_tuple_atom -> expr_tuple_atom 'GT' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 68
state 100:  items:    expr_tuple_atom -> expr_tuple_atom 'LEQ' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 69
state 101:  items:    expr_tuple_atom -> expr_tuple_atom 'GEQ' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 70
state 102:  items:    expr_tuple_atom -> expr_tuple_atom 'AND' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 71
state 103:  items:    expr_tuple_atom -> expr_tuple_atom 'OR' . expr_tuple_atom
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 72
state 104:  items:    expr_tuple_atom -> 'IF' . expr 'THEN' expr
    expr_tuple_atom -> 'IF' . expr 'THEN' expr 'ELSE' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 105
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 105:  items:    expr_tuple_atom -> 'IF' expr . 'THEN' expr
    expr_tuple_atom -> 'IF' expr . 'THEN' expr 'ELSE' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (explicit nonassoc 9990):   shift 106
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 106:  items:    expr_tuple_atom -> 'IF' expr 'THEN' . expr
    expr_tuple_atom -> 'IF' expr 'THEN' . expr 'ELSE' expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 107
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 107:  items:    expr_tuple_atom -> 'IF' expr 'THEN' expr . 
    expr_tuple_atom -> 'IF' expr 'THEN' expr . 'ELSE' expr
  actions:    action 'EOF' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'IF' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'THEN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'ELSE' (explicit nonassoc 9990):   shift 108
    action 'FUN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'ARROW' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'LET' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'REC' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'IN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'TRUE' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'FALSE' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'BRA' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'KET' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'PLUS' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'MINUS' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'STAR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'SLASH' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'PERCENT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'LT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'GT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'LEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'GEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'EQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'NEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'AND' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'OR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'NOT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'COLON' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'SEMICOLON2' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'COMMA' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'STRING' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'ID' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'CHAR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'FLOAT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'INT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action 'error' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action '#' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
    action '$$' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr
  immediate action: <none>  gotos:state 108:  items:    expr_tuple_atom -> 'IF' expr 'THEN' expr 'ELSE' . expr
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 12
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto expr: 109
    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 10
state 109:  items:    expr_tuple_atom -> 'IF' expr 'THEN' expr 'ELSE' expr . 
  actions:    action 'EOF' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'IF' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'THEN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'ELSE' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'FUN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'ARROW' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'LET' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'REC' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'IN' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'TRUE' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'FALSE' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'BRA' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'KET' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'PLUS' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'MINUS' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'STAR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'SLASH' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'PERCENT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'LT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'GT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'LEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'GEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'EQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'NEQ' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'AND' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'OR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'NOT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'COLON' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'SEMICOLON2' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'COMMA' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'STRING' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'ID' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'CHAR' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'FLOAT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'INT' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action 'error' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action '#' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
    action '$$' (explicit nonassoc 9990):   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr
  immediate action:   reduce expr_tuple_atom --> 'IF' expr 'THEN' expr 'ELSE' expr  gotos:state 110:  items:    expr_tuple_atoms -> expr_tuple_atom 'COMMA' . expr_tuple_atoms
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   shift 104
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   shift 75
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   shift 15
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   shift 49
    action 'FALSE' (noprec):   shift 50
    action 'BRA' (noprec):   shift 51
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (explicit left 9996):   shift 90
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (explicit nonassoc 9999):   shift 89
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   shift 47
    action 'ID' (noprec):   shift 54
    action 'CHAR' (noprec):   shift 48
    action 'FLOAT' (noprec):   shift 46
    action 'INT' (noprec):   shift 45
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto binding: 86
    goto lit: 53
    goto expr_app_atom: 57
    goto expr_tuple_atom: 73
    goto expr_tuple_atoms: 111
state 111:  items:    expr_tuple_atoms -> expr_tuple_atom 'COMMA' expr_tuple_atoms . 
  actions:    action 'EOF' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'IF' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'THEN' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'ELSE' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'FUN' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'ARROW' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'LET' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'REC' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'IN' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'TRUE' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'FALSE' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'BRA' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'KET' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'PLUS' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'MINUS' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'STAR' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'SLASH' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'PERCENT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'LT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'GT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'LEQ' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'GEQ' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'EQ' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'NEQ' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'AND' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'OR' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'NOT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'COLON' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'SEMICOLON2' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'COMMA' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'STRING' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'ID' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'CHAR' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'FLOAT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'INT' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action 'error' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action '#' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
    action '$$' (explicit left 9991):   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms
  immediate action:   reduce expr_tuple_atoms --> expr_tuple_atom 'COMMA' expr_tuple_atoms  gotos:state 112:  items:    ty -> 'ID' . 
  actions:    action 'EOF' (noprec):   reduce ty --> 'ID'
    action 'IF' (noprec):   reduce ty --> 'ID'
    action 'THEN' (noprec):   reduce ty --> 'ID'
    action 'ELSE' (noprec):   reduce ty --> 'ID'
    action 'FUN' (noprec):   reduce ty --> 'ID'
    action 'ARROW' (noprec):   reduce ty --> 'ID'
    action 'LET' (noprec):   reduce ty --> 'ID'
    action 'REC' (noprec):   reduce ty --> 'ID'
    action 'IN' (noprec):   reduce ty --> 'ID'
    action 'TRUE' (noprec):   reduce ty --> 'ID'
    action 'FALSE' (noprec):   reduce ty --> 'ID'
    action 'BRA' (noprec):   reduce ty --> 'ID'
    action 'KET' (noprec):   reduce ty --> 'ID'
    action 'PLUS' (noprec):   reduce ty --> 'ID'
    action 'MINUS' (noprec):   reduce ty --> 'ID'
    action 'STAR' (noprec):   reduce ty --> 'ID'
    action 'SLASH' (noprec):   reduce ty --> 'ID'
    action 'PERCENT' (noprec):   reduce ty --> 'ID'
    action 'LT' (noprec):   reduce ty --> 'ID'
    action 'GT' (noprec):   reduce ty --> 'ID'
    action 'LEQ' (noprec):   reduce ty --> 'ID'
    action 'GEQ' (noprec):   reduce ty --> 'ID'
    action 'EQ' (noprec):   reduce ty --> 'ID'
    action 'NEQ' (noprec):   reduce ty --> 'ID'
    action 'AND' (noprec):   reduce ty --> 'ID'
    action 'OR' (noprec):   reduce ty --> 'ID'
    action 'NOT' (noprec):   reduce ty --> 'ID'
    action 'COLON' (noprec):   reduce ty --> 'ID'
    action 'SEMICOLON2' (noprec):   reduce ty --> 'ID'
    action 'COMMA' (noprec):   reduce ty --> 'ID'
    action 'STRING' (noprec):   reduce ty --> 'ID'
    action 'ID' (noprec):   reduce ty --> 'ID'
    action 'CHAR' (noprec):   reduce ty --> 'ID'
    action 'FLOAT' (noprec):   reduce ty --> 'ID'
    action 'INT' (noprec):   reduce ty --> 'ID'
    action 'error' (noprec):   reduce ty --> 'ID'
    action '#' (noprec):   reduce ty --> 'ID'
    action '$$' (noprec):   reduce ty --> 'ID'
  immediate action:   reduce ty --> 'ID'  gotos:state 113:  items:    ty -> ty . 'ARROW' ty
    ty -> ty 'ARROW' ty . 
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'IF' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'THEN' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'ELSE' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'FUN' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'REC' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'IN' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'TRUE' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'FALSE' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'BRA' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'KET' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'PLUS' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'MINUS' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'PERCENT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'LT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'GT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'LEQ' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'GEQ' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'EQ' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'NEQ' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'AND' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'OR' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'NOT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'COLON' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'SEMICOLON2' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'COMMA' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'STRING' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'ID' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'CHAR' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'FLOAT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'INT' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action 'error' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action '#' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
    action '$$' (explicit right 9992):   reduce ty --> ty 'ARROW' ty
  immediate action: <none>  gotos:state 114:  items:    ty -> ty . 'ARROW' ty
    ty -> 'BRA' ty . 'KET'
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (explicit right 9992):   shift 116
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   error
    action 'KET' (noprec):   shift 120
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (explicit left 9997):   shift 121
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 115:  items:    ty -> ty . 'ARROW' ty
    ty_tuple -> ty . 'STAR' ty
    ty_tuple -> ty 'STAR' ty . 
    ty_tuple -> ty . 'STAR' ty 'STAR' ty_tuple
    ty_tuple -> ty 'STAR' ty . 'STAR' ty_tuple
  actions:    action 'EOF' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'IF' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'THEN' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'ELSE' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'FUN' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'ARROW' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'LET' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'REC' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'IN' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'TRUE' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'FALSE' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'BRA' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'KET' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'PLUS' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'MINUS' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'STAR' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'SLASH' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'PERCENT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'LT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'GT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'LEQ' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'GEQ' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'EQ' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'NEQ' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'AND' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'OR' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'NOT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'COLON' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'SEMICOLON2' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'COMMA' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'STRING' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'ID' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'CHAR' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'FLOAT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'INT' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action 'error' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action '#' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
    action '$$' (explicit left 9997):   reduce ty_tuple --> ty 'STAR' ty
  immediate action: <none>  gotos:state 116:  items:    ty -> ty 'ARROW' . ty
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 113
    goto ty_tuple: 117
state 117:  items:    ty -> ty_tuple . 
  actions:    action 'EOF' (noprec):   reduce ty --> ty_tuple
    action 'IF' (noprec):   reduce ty --> ty_tuple
    action 'THEN' (noprec):   reduce ty --> ty_tuple
    action 'ELSE' (noprec):   reduce ty --> ty_tuple
    action 'FUN' (noprec):   reduce ty --> ty_tuple
    action 'ARROW' (noprec):   reduce ty --> ty_tuple
    action 'LET' (noprec):   reduce ty --> ty_tuple
    action 'REC' (noprec):   reduce ty --> ty_tuple
    action 'IN' (noprec):   reduce ty --> ty_tuple
    action 'TRUE' (noprec):   reduce ty --> ty_tuple
    action 'FALSE' (noprec):   reduce ty --> ty_tuple
    action 'BRA' (noprec):   reduce ty --> ty_tuple
    action 'KET' (noprec):   reduce ty --> ty_tuple
    action 'PLUS' (noprec):   reduce ty --> ty_tuple
    action 'MINUS' (noprec):   reduce ty --> ty_tuple
    action 'STAR' (noprec):   reduce ty --> ty_tuple
    action 'SLASH' (noprec):   reduce ty --> ty_tuple
    action 'PERCENT' (noprec):   reduce ty --> ty_tuple
    action 'LT' (noprec):   reduce ty --> ty_tuple
    action 'GT' (noprec):   reduce ty --> ty_tuple
    action 'LEQ' (noprec):   reduce ty --> ty_tuple
    action 'GEQ' (noprec):   reduce ty --> ty_tuple
    action 'EQ' (noprec):   reduce ty --> ty_tuple
    action 'NEQ' (noprec):   reduce ty --> ty_tuple
    action 'AND' (noprec):   reduce ty --> ty_tuple
    action 'OR' (noprec):   reduce ty --> ty_tuple
    action 'NOT' (noprec):   reduce ty --> ty_tuple
    action 'COLON' (noprec):   reduce ty --> ty_tuple
    action 'SEMICOLON2' (noprec):   reduce ty --> ty_tuple
    action 'COMMA' (noprec):   reduce ty --> ty_tuple
    action 'STRING' (noprec):   reduce ty --> ty_tuple
    action 'ID' (noprec):   reduce ty --> ty_tuple
    action 'CHAR' (noprec):   reduce ty --> ty_tuple
    action 'FLOAT' (noprec):   reduce ty --> ty_tuple
    action 'INT' (noprec):   reduce ty --> ty_tuple
    action 'error' (noprec):   reduce ty --> ty_tuple
    action '#' (noprec):   reduce ty --> ty_tuple
    action '$$' (noprec):   reduce ty --> ty_tuple
  immediate action:   reduce ty --> ty_tuple  gotos:state 118:  items:    ty -> ty_tuple . 
    ty_tuple -> ty 'STAR' ty 'STAR' ty_tuple . 
  actions:    action 'EOF' (noprec):   reduce ty --> ty_tuple
    action 'IF' (noprec):   reduce ty --> ty_tuple
    action 'THEN' (noprec):   reduce ty --> ty_tuple
    action 'ELSE' (noprec):   reduce ty --> ty_tuple
    action 'FUN' (noprec):   reduce ty --> ty_tuple
    action 'ARROW' (noprec):   reduce ty --> ty_tuple
    action 'LET' (noprec):   reduce ty --> ty_tuple
    action 'REC' (noprec):   reduce ty --> ty_tuple
    action 'IN' (noprec):   reduce ty --> ty_tuple
    action 'TRUE' (noprec):   reduce ty --> ty_tuple
    action 'FALSE' (noprec):   reduce ty --> ty_tuple
    action 'BRA' (noprec):   reduce ty --> ty_tuple
    action 'KET' (noprec):   reduce ty --> ty_tuple
    action 'PLUS' (noprec):   reduce ty --> ty_tuple
    action 'MINUS' (noprec):   reduce ty --> ty_tuple
    action 'STAR' (noprec):   reduce ty --> ty_tuple
    action 'SLASH' (noprec):   reduce ty --> ty_tuple
    action 'PERCENT' (noprec):   reduce ty --> ty_tuple
    action 'LT' (noprec):   reduce ty --> ty_tuple
    action 'GT' (noprec):   reduce ty --> ty_tuple
    action 'LEQ' (noprec):   reduce ty --> ty_tuple
    action 'GEQ' (noprec):   reduce ty --> ty_tuple
    action 'EQ' (noprec):   reduce ty --> ty_tuple
    action 'NEQ' (noprec):   reduce ty --> ty_tuple
    action 'AND' (noprec):   reduce ty --> ty_tuple
    action 'OR' (noprec):   reduce ty --> ty_tuple
    action 'NOT' (noprec):   reduce ty --> ty_tuple
    action 'COLON' (noprec):   reduce ty --> ty_tuple
    action 'SEMICOLON2' (noprec):   reduce ty --> ty_tuple
    action 'COMMA' (noprec):   reduce ty --> ty_tuple
    action 'STRING' (noprec):   reduce ty --> ty_tuple
    action 'ID' (noprec):   reduce ty --> ty_tuple
    action 'CHAR' (noprec):   reduce ty --> ty_tuple
    action 'FLOAT' (noprec):   reduce ty --> ty_tuple
    action 'INT' (noprec):   reduce ty --> ty_tuple
    action 'error' (noprec):   reduce ty --> ty_tuple
    action '#' (noprec):   reduce ty --> ty_tuple
    action '$$' (noprec):   reduce ty --> ty_tuple
  immediate action: <none>  gotos:state 119:  items:    ty -> 'BRA' . ty 'KET'
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 114
    goto ty_tuple: 117
state 120:  items:    ty -> 'BRA' ty 'KET' . 
  actions:    action 'EOF' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'IF' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'THEN' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'ELSE' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'FUN' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'ARROW' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'LET' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'REC' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'IN' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'TRUE' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'FALSE' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'BRA' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'KET' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'PLUS' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'MINUS' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'STAR' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'SLASH' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'PERCENT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'LT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'GT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'LEQ' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'GEQ' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'EQ' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'NEQ' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'AND' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'OR' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'NOT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'COLON' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'SEMICOLON2' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'COMMA' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'STRING' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'ID' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'CHAR' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'FLOAT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'INT' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action 'error' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action '#' (noprec):   reduce ty --> 'BRA' ty 'KET'
    action '$$' (noprec):   reduce ty --> 'BRA' ty 'KET'
  immediate action:   reduce ty --> 'BRA' ty 'KET'  gotos:state 121:  items:    ty_tuple -> ty 'STAR' . ty
    ty_tuple -> ty 'STAR' . ty 'STAR' ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 115
    goto ty_tuple: 117
state 122:  items:    ty_tuple -> ty 'STAR' . ty
    ty_tuple -> ty 'STAR' . ty 'STAR' ty_tuple
    ty_tuple -> ty 'STAR' ty 'STAR' . ty_tuple
  actions:    action 'EOF' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'FUN' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'LET' (noprec):   error
    action 'REC' (noprec):   error
    action 'IN' (noprec):   error
    action 'TRUE' (noprec):   error
    action 'FALSE' (noprec):   error
    action 'BRA' (noprec):   shift 119
    action 'KET' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'STAR' (noprec):   error
    action 'SLASH' (noprec):   error
    action 'PERCENT' (noprec):   error
    action 'LT' (noprec):   error
    action 'GT' (noprec):   error
    action 'LEQ' (noprec):   error
    action 'GEQ' (noprec):   error
    action 'EQ' (noprec):   error
    action 'NEQ' (noprec):   error
    action 'AND' (noprec):   error
    action 'OR' (noprec):   error
    action 'NOT' (noprec):   error
    action 'COLON' (noprec):   error
    action 'SEMICOLON2' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'STRING' (noprec):   error
    action 'ID' (noprec):   shift 112
    action 'CHAR' (noprec):   error
    action 'FLOAT' (noprec):   error
    action 'INT' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto ty: 115
    goto ty_tuple: 118

startStates = 0;2
------------------------
