        Output file describing compiled parser placed in Parser.fs and Parser.fsi
------------------------
states = 
state 0:  items:    _startProg ->  . Prog
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   shift 4
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Prog: 1
    goto FunDecs: 2
state 1:  items:    _startProg -> Prog . 
  actions:    action 'LPAR' (noprec):   accept
    action 'RPAR' (noprec):   accept
    action 'LBRACKET' (noprec):   accept
    action 'RBRACKET' (noprec):   accept
    action 'LCURLY' (noprec):   accept
    action 'RCURLY' (noprec):   accept
    action 'FUN' (noprec):   accept
    action 'FN' (noprec):   accept
    action 'COMMA' (noprec):   accept
    action 'SEMICOLON' (noprec):   accept
    action 'READ' (noprec):   accept
    action 'WRITE' (noprec):   accept
    action 'DEQ' (noprec):   accept
    action 'LTH' (noprec):   accept
    action 'EQ' (noprec):   accept
    action 'OP' (noprec):   accept
    action 'MAP' (noprec):   accept
    action 'REDUCE' (noprec):   accept
    action 'IOTA' (noprec):   accept
    action 'ARROW' (noprec):   accept
    action 'PLUS' (noprec):   accept
    action 'MINUS' (noprec):   accept
    action 'LESS' (noprec):   accept
    action 'INT' (noprec):   accept
    action 'CHAR' (noprec):   accept
    action 'BOOL' (noprec):   accept
    action 'IF' (noprec):   accept
    action 'THEN' (noprec):   accept
    action 'ELSE' (noprec):   accept
    action 'LET' (noprec):   accept
    action 'IN' (noprec):   accept
    action 'EOF' (noprec):   accept
    action 'ID' (noprec):   accept
    action 'STRINGLIT' (noprec):   accept
    action 'CHARLIT' (noprec):   accept
    action 'NUM' (noprec):   accept
    action 'error' (noprec):   accept
    action '#' (noprec):   accept
    action '$$' (noprec):   accept
  immediate action:   accept  gotos:state 2:  items:    Prog -> FunDecs . 'EOF'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   shift 3
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 3:  items:    Prog -> FunDecs 'EOF' . 
  actions:    action 'LPAR' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'RPAR' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'LBRACKET' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'RBRACKET' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'LCURLY' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'RCURLY' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'FUN' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'FN' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'COMMA' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'SEMICOLON' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'READ' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'WRITE' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'DEQ' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'LTH' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'EQ' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'OP' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'MAP' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'REDUCE' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'IOTA' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'ARROW' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'PLUS' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'MINUS' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'LESS' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'INT' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'CHAR' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'BOOL' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'IF' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'THEN' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'ELSE' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'LET' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'IN' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'EOF' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'ID' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'STRINGLIT' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'CHARLIT' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'NUM' (noprec):   reduce Prog --> FunDecs 'EOF'
    action 'error' (noprec):   reduce Prog --> FunDecs 'EOF'
    action '#' (noprec):   reduce Prog --> FunDecs 'EOF'
    action '$$' (noprec):   reduce Prog --> FunDecs 'EOF'
  immediate action:   reduce Prog --> FunDecs 'EOF'  gotos:state 4:  items:    FunDecs -> 'FUN' . Fun FunDecs
    FunDecs -> 'FUN' . Fun
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Fun: 5
    goto Type: 7
state 5:  items:    FunDecs -> 'FUN' Fun . FunDecs
    FunDecs -> 'FUN' Fun . 
  actions:    action 'LPAR' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'RPAR' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'LBRACKET' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'RBRACKET' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'LCURLY' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'RCURLY' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'FUN' (noprec):   shift 4
    action 'FN' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'COMMA' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'SEMICOLON' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'READ' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'WRITE' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'DEQ' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'LTH' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'EQ' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'OP' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'MAP' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'REDUCE' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'IOTA' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'ARROW' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'PLUS' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'MINUS' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'LESS' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'INT' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'CHAR' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'BOOL' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'IF' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'THEN' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'ELSE' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'LET' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'IN' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'EOF' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'ID' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'STRINGLIT' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'CHARLIT' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'NUM' (noprec):   reduce FunDecs --> 'FUN' Fun
    action 'error' (noprec):   reduce FunDecs --> 'FUN' Fun
    action '#' (noprec):   reduce FunDecs --> 'FUN' Fun
    action '$$' (noprec):   reduce FunDecs --> 'FUN' Fun
  immediate action: <none>  gotos:    goto FunDecs: 6
state 6:  items:    FunDecs -> 'FUN' Fun FunDecs . 
  actions:    action 'LPAR' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'RPAR' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'LBRACKET' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'RBRACKET' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'LCURLY' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'RCURLY' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'FUN' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'FN' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'COMMA' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'SEMICOLON' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'READ' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'WRITE' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'DEQ' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'LTH' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'EQ' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'OP' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'MAP' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'REDUCE' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'IOTA' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'ARROW' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'PLUS' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'MINUS' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'LESS' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'INT' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'CHAR' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'BOOL' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'IF' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'THEN' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'ELSE' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'LET' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'IN' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'EOF' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'ID' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'STRINGLIT' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'CHARLIT' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'NUM' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action 'error' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action '#' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
    action '$$' (noprec):   reduce FunDecs --> 'FUN' Fun FunDecs
  immediate action:   reduce FunDecs --> 'FUN' Fun FunDecs  gotos:state 7:  items:    Fun -> Type . 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    Fun -> Type . 'ID' 'LPAR' 'RPAR' 'EQ' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 8
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 8:  items:    Fun -> Type 'ID' . 'LPAR' Params 'RPAR' 'EQ' Exp
    Fun -> Type 'ID' . 'LPAR' 'RPAR' 'EQ' Exp
  actions:    action 'LPAR' (noprec):   shift 9
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 9:  items:    Fun -> Type 'ID' 'LPAR' . Params 'RPAR' 'EQ' Exp
    Fun -> Type 'ID' 'LPAR' . 'RPAR' 'EQ' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 14
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 23
    goto Params: 10
state 10:  items:    Fun -> Type 'ID' 'LPAR' Params . 'RPAR' 'EQ' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 11
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 11:  items:    Fun -> Type 'ID' 'LPAR' Params 'RPAR' . 'EQ' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   shift 12
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 12:  items:    Fun -> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 13
state 13:  items:    Fun -> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp . 
    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
  actions:    action 'LPAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'RPAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'LBRACKET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'RBRACKET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'LCURLY' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'RCURLY' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'FUN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'FN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'COMMA' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'SEMICOLON' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'READ' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'WRITE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'OP' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'MAP' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'REDUCE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'IOTA' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'ARROW' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'INT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'CHAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'BOOL' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'IF' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'THEN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'ELSE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'LET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'IN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'EOF' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'ID' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'STRINGLIT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'CHARLIT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'NUM' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action 'error' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action '#' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
    action '$$' (noprec):   reduce Fun --> Type 'ID' 'LPAR' Params 'RPAR' 'EQ' Exp
  immediate action: <none>  gotos:state 14:  items:    Fun -> Type 'ID' 'LPAR' 'RPAR' . 'EQ' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   shift 15
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 15:  items:    Fun -> Type 'ID' 'LPAR' 'RPAR' 'EQ' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 16
state 16:  items:    Fun -> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp . 
    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
  actions:    action 'LPAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'RPAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'LBRACKET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'RBRACKET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'LCURLY' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'RCURLY' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'FUN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'FN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'COMMA' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'SEMICOLON' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'READ' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'WRITE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'OP' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'MAP' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'REDUCE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'IOTA' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'ARROW' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'INT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'CHAR' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'BOOL' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'IF' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'THEN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'ELSE' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'LET' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'IN' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'EOF' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'ID' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'STRINGLIT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'CHARLIT' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'NUM' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action 'error' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action '#' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
    action '$$' (noprec):   reduce Fun --> Type 'ID' 'LPAR' 'RPAR' 'EQ' Exp
  immediate action: <none>  gotos:state 17:  items:    Type -> 'INT' . 
  actions:    action 'LPAR' (noprec):   reduce Type --> 'INT'
    action 'RPAR' (noprec):   reduce Type --> 'INT'
    action 'LBRACKET' (noprec):   reduce Type --> 'INT'
    action 'RBRACKET' (noprec):   reduce Type --> 'INT'
    action 'LCURLY' (noprec):   reduce Type --> 'INT'
    action 'RCURLY' (noprec):   reduce Type --> 'INT'
    action 'FUN' (noprec):   reduce Type --> 'INT'
    action 'FN' (noprec):   reduce Type --> 'INT'
    action 'COMMA' (noprec):   reduce Type --> 'INT'
    action 'SEMICOLON' (noprec):   reduce Type --> 'INT'
    action 'READ' (noprec):   reduce Type --> 'INT'
    action 'WRITE' (noprec):   reduce Type --> 'INT'
    action 'DEQ' (noprec):   reduce Type --> 'INT'
    action 'LTH' (noprec):   reduce Type --> 'INT'
    action 'EQ' (noprec):   reduce Type --> 'INT'
    action 'OP' (noprec):   reduce Type --> 'INT'
    action 'MAP' (noprec):   reduce Type --> 'INT'
    action 'REDUCE' (noprec):   reduce Type --> 'INT'
    action 'IOTA' (noprec):   reduce Type --> 'INT'
    action 'ARROW' (noprec):   reduce Type --> 'INT'
    action 'PLUS' (noprec):   reduce Type --> 'INT'
    action 'MINUS' (noprec):   reduce Type --> 'INT'
    action 'LESS' (noprec):   reduce Type --> 'INT'
    action 'INT' (noprec):   reduce Type --> 'INT'
    action 'CHAR' (noprec):   reduce Type --> 'INT'
    action 'BOOL' (noprec):   reduce Type --> 'INT'
    action 'IF' (noprec):   reduce Type --> 'INT'
    action 'THEN' (noprec):   reduce Type --> 'INT'
    action 'ELSE' (noprec):   reduce Type --> 'INT'
    action 'LET' (noprec):   reduce Type --> 'INT'
    action 'IN' (noprec):   reduce Type --> 'INT'
    action 'EOF' (noprec):   reduce Type --> 'INT'
    action 'ID' (noprec):   reduce Type --> 'INT'
    action 'STRINGLIT' (noprec):   reduce Type --> 'INT'
    action 'CHARLIT' (noprec):   reduce Type --> 'INT'
    action 'NUM' (noprec):   reduce Type --> 'INT'
    action 'error' (noprec):   reduce Type --> 'INT'
    action '#' (noprec):   reduce Type --> 'INT'
    action '$$' (noprec):   reduce Type --> 'INT'
  immediate action:   reduce Type --> 'INT'  gotos:state 18:  items:    Type -> 'CHAR' . 
  actions:    action 'LPAR' (noprec):   reduce Type --> 'CHAR'
    action 'RPAR' (noprec):   reduce Type --> 'CHAR'
    action 'LBRACKET' (noprec):   reduce Type --> 'CHAR'
    action 'RBRACKET' (noprec):   reduce Type --> 'CHAR'
    action 'LCURLY' (noprec):   reduce Type --> 'CHAR'
    action 'RCURLY' (noprec):   reduce Type --> 'CHAR'
    action 'FUN' (noprec):   reduce Type --> 'CHAR'
    action 'FN' (noprec):   reduce Type --> 'CHAR'
    action 'COMMA' (noprec):   reduce Type --> 'CHAR'
    action 'SEMICOLON' (noprec):   reduce Type --> 'CHAR'
    action 'READ' (noprec):   reduce Type --> 'CHAR'
    action 'WRITE' (noprec):   reduce Type --> 'CHAR'
    action 'DEQ' (noprec):   reduce Type --> 'CHAR'
    action 'LTH' (noprec):   reduce Type --> 'CHAR'
    action 'EQ' (noprec):   reduce Type --> 'CHAR'
    action 'OP' (noprec):   reduce Type --> 'CHAR'
    action 'MAP' (noprec):   reduce Type --> 'CHAR'
    action 'REDUCE' (noprec):   reduce Type --> 'CHAR'
    action 'IOTA' (noprec):   reduce Type --> 'CHAR'
    action 'ARROW' (noprec):   reduce Type --> 'CHAR'
    action 'PLUS' (noprec):   reduce Type --> 'CHAR'
    action 'MINUS' (noprec):   reduce Type --> 'CHAR'
    action 'LESS' (noprec):   reduce Type --> 'CHAR'
    action 'INT' (noprec):   reduce Type --> 'CHAR'
    action 'CHAR' (noprec):   reduce Type --> 'CHAR'
    action 'BOOL' (noprec):   reduce Type --> 'CHAR'
    action 'IF' (noprec):   reduce Type --> 'CHAR'
    action 'THEN' (noprec):   reduce Type --> 'CHAR'
    action 'ELSE' (noprec):   reduce Type --> 'CHAR'
    action 'LET' (noprec):   reduce Type --> 'CHAR'
    action 'IN' (noprec):   reduce Type --> 'CHAR'
    action 'EOF' (noprec):   reduce Type --> 'CHAR'
    action 'ID' (noprec):   reduce Type --> 'CHAR'
    action 'STRINGLIT' (noprec):   reduce Type --> 'CHAR'
    action 'CHARLIT' (noprec):   reduce Type --> 'CHAR'
    action 'NUM' (noprec):   reduce Type --> 'CHAR'
    action 'error' (noprec):   reduce Type --> 'CHAR'
    action '#' (noprec):   reduce Type --> 'CHAR'
    action '$$' (noprec):   reduce Type --> 'CHAR'
  immediate action:   reduce Type --> 'CHAR'  gotos:state 19:  items:    Type -> 'BOOL' . 
  actions:    action 'LPAR' (noprec):   reduce Type --> 'BOOL'
    action 'RPAR' (noprec):   reduce Type --> 'BOOL'
    action 'LBRACKET' (noprec):   reduce Type --> 'BOOL'
    action 'RBRACKET' (noprec):   reduce Type --> 'BOOL'
    action 'LCURLY' (noprec):   reduce Type --> 'BOOL'
    action 'RCURLY' (noprec):   reduce Type --> 'BOOL'
    action 'FUN' (noprec):   reduce Type --> 'BOOL'
    action 'FN' (noprec):   reduce Type --> 'BOOL'
    action 'COMMA' (noprec):   reduce Type --> 'BOOL'
    action 'SEMICOLON' (noprec):   reduce Type --> 'BOOL'
    action 'READ' (noprec):   reduce Type --> 'BOOL'
    action 'WRITE' (noprec):   reduce Type --> 'BOOL'
    action 'DEQ' (noprec):   reduce Type --> 'BOOL'
    action 'LTH' (noprec):   reduce Type --> 'BOOL'
    action 'EQ' (noprec):   reduce Type --> 'BOOL'
    action 'OP' (noprec):   reduce Type --> 'BOOL'
    action 'MAP' (noprec):   reduce Type --> 'BOOL'
    action 'REDUCE' (noprec):   reduce Type --> 'BOOL'
    action 'IOTA' (noprec):   reduce Type --> 'BOOL'
    action 'ARROW' (noprec):   reduce Type --> 'BOOL'
    action 'PLUS' (noprec):   reduce Type --> 'BOOL'
    action 'MINUS' (noprec):   reduce Type --> 'BOOL'
    action 'LESS' (noprec):   reduce Type --> 'BOOL'
    action 'INT' (noprec):   reduce Type --> 'BOOL'
    action 'CHAR' (noprec):   reduce Type --> 'BOOL'
    action 'BOOL' (noprec):   reduce Type --> 'BOOL'
    action 'IF' (noprec):   reduce Type --> 'BOOL'
    action 'THEN' (noprec):   reduce Type --> 'BOOL'
    action 'ELSE' (noprec):   reduce Type --> 'BOOL'
    action 'LET' (noprec):   reduce Type --> 'BOOL'
    action 'IN' (noprec):   reduce Type --> 'BOOL'
    action 'EOF' (noprec):   reduce Type --> 'BOOL'
    action 'ID' (noprec):   reduce Type --> 'BOOL'
    action 'STRINGLIT' (noprec):   reduce Type --> 'BOOL'
    action 'CHARLIT' (noprec):   reduce Type --> 'BOOL'
    action 'NUM' (noprec):   reduce Type --> 'BOOL'
    action 'error' (noprec):   reduce Type --> 'BOOL'
    action '#' (noprec):   reduce Type --> 'BOOL'
    action '$$' (noprec):   reduce Type --> 'BOOL'
  immediate action:   reduce Type --> 'BOOL'  gotos:state 20:  items:    Type -> 'LBRACKET' . Type 'RBRACKET'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 21
state 21:  items:    Type -> 'LBRACKET' Type . 'RBRACKET'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   shift 22
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 22:  items:    Type -> 'LBRACKET' Type 'RBRACKET' . 
  actions:    action 'LPAR' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'RPAR' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'LBRACKET' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'RBRACKET' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'LCURLY' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'RCURLY' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'FUN' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'FN' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'COMMA' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'SEMICOLON' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'READ' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'WRITE' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'DEQ' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'LTH' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'EQ' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'OP' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'MAP' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'REDUCE' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'IOTA' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'ARROW' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'PLUS' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'MINUS' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'LESS' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'INT' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'CHAR' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'BOOL' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'IF' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'THEN' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'ELSE' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'LET' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'IN' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'EOF' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'ID' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'STRINGLIT' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'CHARLIT' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'NUM' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action 'error' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action '#' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
    action '$$' (noprec):   reduce Type --> 'LBRACKET' Type 'RBRACKET'
  immediate action:   reduce Type --> 'LBRACKET' Type 'RBRACKET'  gotos:state 23:  items:    Params -> Type . 'ID' 'COMMA' Params
    Params -> Type . 'ID'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 24
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 24:  items:    Params -> Type 'ID' . 'COMMA' Params
    Params -> Type 'ID' . 
  actions:    action 'LPAR' (noprec):   reduce Params --> Type 'ID'
    action 'RPAR' (noprec):   reduce Params --> Type 'ID'
    action 'LBRACKET' (noprec):   reduce Params --> Type 'ID'
    action 'RBRACKET' (noprec):   reduce Params --> Type 'ID'
    action 'LCURLY' (noprec):   reduce Params --> Type 'ID'
    action 'RCURLY' (noprec):   reduce Params --> Type 'ID'
    action 'FUN' (noprec):   reduce Params --> Type 'ID'
    action 'FN' (noprec):   reduce Params --> Type 'ID'
    action 'COMMA' (noprec):   shift 25
    action 'SEMICOLON' (noprec):   reduce Params --> Type 'ID'
    action 'READ' (noprec):   reduce Params --> Type 'ID'
    action 'WRITE' (noprec):   reduce Params --> Type 'ID'
    action 'DEQ' (noprec):   reduce Params --> Type 'ID'
    action 'LTH' (noprec):   reduce Params --> Type 'ID'
    action 'EQ' (noprec):   reduce Params --> Type 'ID'
    action 'OP' (noprec):   reduce Params --> Type 'ID'
    action 'MAP' (noprec):   reduce Params --> Type 'ID'
    action 'REDUCE' (noprec):   reduce Params --> Type 'ID'
    action 'IOTA' (noprec):   reduce Params --> Type 'ID'
    action 'ARROW' (noprec):   reduce Params --> Type 'ID'
    action 'PLUS' (noprec):   reduce Params --> Type 'ID'
    action 'MINUS' (noprec):   reduce Params --> Type 'ID'
    action 'LESS' (noprec):   reduce Params --> Type 'ID'
    action 'INT' (noprec):   reduce Params --> Type 'ID'
    action 'CHAR' (noprec):   reduce Params --> Type 'ID'
    action 'BOOL' (noprec):   reduce Params --> Type 'ID'
    action 'IF' (noprec):   reduce Params --> Type 'ID'
    action 'THEN' (noprec):   reduce Params --> Type 'ID'
    action 'ELSE' (noprec):   reduce Params --> Type 'ID'
    action 'LET' (noprec):   reduce Params --> Type 'ID'
    action 'IN' (noprec):   reduce Params --> Type 'ID'
    action 'EOF' (noprec):   reduce Params --> Type 'ID'
    action 'ID' (noprec):   reduce Params --> Type 'ID'
    action 'STRINGLIT' (noprec):   reduce Params --> Type 'ID'
    action 'CHARLIT' (noprec):   reduce Params --> Type 'ID'
    action 'NUM' (noprec):   reduce Params --> Type 'ID'
    action 'error' (noprec):   reduce Params --> Type 'ID'
    action '#' (noprec):   reduce Params --> Type 'ID'
    action '$$' (noprec):   reduce Params --> Type 'ID'
  immediate action: <none>  gotos:state 25:  items:    Params -> Type 'ID' 'COMMA' . Params
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 23
    goto Params: 26
state 26:  items:    Params -> Type 'ID' 'COMMA' Params . 
  actions:    action 'LPAR' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'RPAR' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'LBRACKET' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'RBRACKET' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'LCURLY' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'RCURLY' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'FUN' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'FN' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'COMMA' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'SEMICOLON' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'READ' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'WRITE' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'DEQ' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'LTH' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'EQ' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'OP' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'MAP' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'REDUCE' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'IOTA' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'ARROW' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'PLUS' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'MINUS' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'LESS' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'INT' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'CHAR' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'BOOL' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'IF' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'THEN' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'ELSE' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'LET' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'IN' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'EOF' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'ID' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'STRINGLIT' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'CHARLIT' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'NUM' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action 'error' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action '#' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
    action '$$' (noprec):   reduce Params --> Type 'ID' 'COMMA' Params
  immediate action:   reduce Params --> Type 'ID' 'COMMA' Params  gotos:state 27:  items:    BinOp -> 'PLUS' . 
  actions:    action 'LPAR' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'RPAR' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'LBRACKET' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'RBRACKET' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'LCURLY' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'RCURLY' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'FUN' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'FN' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'COMMA' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'SEMICOLON' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'READ' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'WRITE' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'DEQ' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'LTH' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'EQ' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'OP' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'MAP' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'REDUCE' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'IOTA' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'ARROW' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'PLUS' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'MINUS' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'LESS' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'INT' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'CHAR' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'BOOL' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'IF' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'THEN' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'ELSE' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'LET' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'IN' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'EOF' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'ID' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'STRINGLIT' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'CHARLIT' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'NUM' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action 'error' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action '#' (explicit left 9999):   reduce BinOp --> 'PLUS'
    action '$$' (explicit left 9999):   reduce BinOp --> 'PLUS'
  immediate action:   reduce BinOp --> 'PLUS'  gotos:state 28:  items:    Exp -> 'NUM' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'NUM'
    action 'RPAR' (noprec):   reduce Exp --> 'NUM'
    action 'LBRACKET' (noprec):   reduce Exp --> 'NUM'
    action 'RBRACKET' (noprec):   reduce Exp --> 'NUM'
    action 'LCURLY' (noprec):   reduce Exp --> 'NUM'
    action 'RCURLY' (noprec):   reduce Exp --> 'NUM'
    action 'FUN' (noprec):   reduce Exp --> 'NUM'
    action 'FN' (noprec):   reduce Exp --> 'NUM'
    action 'COMMA' (noprec):   reduce Exp --> 'NUM'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'NUM'
    action 'READ' (noprec):   reduce Exp --> 'NUM'
    action 'WRITE' (noprec):   reduce Exp --> 'NUM'
    action 'DEQ' (noprec):   reduce Exp --> 'NUM'
    action 'LTH' (noprec):   reduce Exp --> 'NUM'
    action 'EQ' (noprec):   reduce Exp --> 'NUM'
    action 'OP' (noprec):   reduce Exp --> 'NUM'
    action 'MAP' (noprec):   reduce Exp --> 'NUM'
    action 'REDUCE' (noprec):   reduce Exp --> 'NUM'
    action 'IOTA' (noprec):   reduce Exp --> 'NUM'
    action 'ARROW' (noprec):   reduce Exp --> 'NUM'
    action 'PLUS' (noprec):   reduce Exp --> 'NUM'
    action 'MINUS' (noprec):   reduce Exp --> 'NUM'
    action 'LESS' (noprec):   reduce Exp --> 'NUM'
    action 'INT' (noprec):   reduce Exp --> 'NUM'
    action 'CHAR' (noprec):   reduce Exp --> 'NUM'
    action 'BOOL' (noprec):   reduce Exp --> 'NUM'
    action 'IF' (noprec):   reduce Exp --> 'NUM'
    action 'THEN' (noprec):   reduce Exp --> 'NUM'
    action 'ELSE' (noprec):   reduce Exp --> 'NUM'
    action 'LET' (noprec):   reduce Exp --> 'NUM'
    action 'IN' (noprec):   reduce Exp --> 'NUM'
    action 'EOF' (noprec):   reduce Exp --> 'NUM'
    action 'ID' (noprec):   reduce Exp --> 'NUM'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'NUM'
    action 'CHARLIT' (noprec):   reduce Exp --> 'NUM'
    action 'NUM' (noprec):   reduce Exp --> 'NUM'
    action 'error' (noprec):   reduce Exp --> 'NUM'
    action '#' (noprec):   reduce Exp --> 'NUM'
    action '$$' (noprec):   reduce Exp --> 'NUM'
  immediate action:   reduce Exp --> 'NUM'  gotos:state 29:  items:    Exp -> 'CHARLIT' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'CHARLIT'
    action 'RPAR' (noprec):   reduce Exp --> 'CHARLIT'
    action 'LBRACKET' (noprec):   reduce Exp --> 'CHARLIT'
    action 'RBRACKET' (noprec):   reduce Exp --> 'CHARLIT'
    action 'LCURLY' (noprec):   reduce Exp --> 'CHARLIT'
    action 'RCURLY' (noprec):   reduce Exp --> 'CHARLIT'
    action 'FUN' (noprec):   reduce Exp --> 'CHARLIT'
    action 'FN' (noprec):   reduce Exp --> 'CHARLIT'
    action 'COMMA' (noprec):   reduce Exp --> 'CHARLIT'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'CHARLIT'
    action 'READ' (noprec):   reduce Exp --> 'CHARLIT'
    action 'WRITE' (noprec):   reduce Exp --> 'CHARLIT'
    action 'DEQ' (noprec):   reduce Exp --> 'CHARLIT'
    action 'LTH' (noprec):   reduce Exp --> 'CHARLIT'
    action 'EQ' (noprec):   reduce Exp --> 'CHARLIT'
    action 'OP' (noprec):   reduce Exp --> 'CHARLIT'
    action 'MAP' (noprec):   reduce Exp --> 'CHARLIT'
    action 'REDUCE' (noprec):   reduce Exp --> 'CHARLIT'
    action 'IOTA' (noprec):   reduce Exp --> 'CHARLIT'
    action 'ARROW' (noprec):   reduce Exp --> 'CHARLIT'
    action 'PLUS' (noprec):   reduce Exp --> 'CHARLIT'
    action 'MINUS' (noprec):   reduce Exp --> 'CHARLIT'
    action 'LESS' (noprec):   reduce Exp --> 'CHARLIT'
    action 'INT' (noprec):   reduce Exp --> 'CHARLIT'
    action 'CHAR' (noprec):   reduce Exp --> 'CHARLIT'
    action 'BOOL' (noprec):   reduce Exp --> 'CHARLIT'
    action 'IF' (noprec):   reduce Exp --> 'CHARLIT'
    action 'THEN' (noprec):   reduce Exp --> 'CHARLIT'
    action 'ELSE' (noprec):   reduce Exp --> 'CHARLIT'
    action 'LET' (noprec):   reduce Exp --> 'CHARLIT'
    action 'IN' (noprec):   reduce Exp --> 'CHARLIT'
    action 'EOF' (noprec):   reduce Exp --> 'CHARLIT'
    action 'ID' (noprec):   reduce Exp --> 'CHARLIT'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'CHARLIT'
    action 'CHARLIT' (noprec):   reduce Exp --> 'CHARLIT'
    action 'NUM' (noprec):   reduce Exp --> 'CHARLIT'
    action 'error' (noprec):   reduce Exp --> 'CHARLIT'
    action '#' (noprec):   reduce Exp --> 'CHARLIT'
    action '$$' (noprec):   reduce Exp --> 'CHARLIT'
  immediate action:   reduce Exp --> 'CHARLIT'  gotos:state 30:  items:    Exp -> 'ID' . 
    Exp -> 'ID' . 'LPAR' Exps 'RPAR'
    Exp -> 'ID' . 'LPAR' 'RPAR'
    Exp -> 'ID' . 'LBRACKET' Exp 'RBRACKET'
  actions:    action 'LPAR' (noprec):   shift 63
    action 'RPAR' (noprec):   reduce Exp --> 'ID'
    action 'LBRACKET' (noprec):   shift 99
    action 'RBRACKET' (noprec):   reduce Exp --> 'ID'
    action 'LCURLY' (noprec):   reduce Exp --> 'ID'
    action 'RCURLY' (noprec):   reduce Exp --> 'ID'
    action 'FUN' (noprec):   reduce Exp --> 'ID'
    action 'FN' (noprec):   reduce Exp --> 'ID'
    action 'COMMA' (noprec):   reduce Exp --> 'ID'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'ID'
    action 'READ' (noprec):   reduce Exp --> 'ID'
    action 'WRITE' (noprec):   reduce Exp --> 'ID'
    action 'DEQ' (noprec):   reduce Exp --> 'ID'
    action 'LTH' (noprec):   reduce Exp --> 'ID'
    action 'EQ' (noprec):   reduce Exp --> 'ID'
    action 'OP' (noprec):   reduce Exp --> 'ID'
    action 'MAP' (noprec):   reduce Exp --> 'ID'
    action 'REDUCE' (noprec):   reduce Exp --> 'ID'
    action 'IOTA' (noprec):   reduce Exp --> 'ID'
    action 'ARROW' (noprec):   reduce Exp --> 'ID'
    action 'PLUS' (noprec):   reduce Exp --> 'ID'
    action 'MINUS' (noprec):   reduce Exp --> 'ID'
    action 'LESS' (noprec):   reduce Exp --> 'ID'
    action 'INT' (noprec):   reduce Exp --> 'ID'
    action 'CHAR' (noprec):   reduce Exp --> 'ID'
    action 'BOOL' (noprec):   reduce Exp --> 'ID'
    action 'IF' (noprec):   reduce Exp --> 'ID'
    action 'THEN' (noprec):   reduce Exp --> 'ID'
    action 'ELSE' (noprec):   reduce Exp --> 'ID'
    action 'LET' (noprec):   reduce Exp --> 'ID'
    action 'IN' (noprec):   reduce Exp --> 'ID'
    action 'EOF' (noprec):   reduce Exp --> 'ID'
    action 'ID' (noprec):   reduce Exp --> 'ID'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'ID'
    action 'CHARLIT' (noprec):   reduce Exp --> 'ID'
    action 'NUM' (noprec):   reduce Exp --> 'ID'
    action 'error' (noprec):   reduce Exp --> 'ID'
    action '#' (noprec):   reduce Exp --> 'ID'
    action '$$' (noprec):   reduce Exp --> 'ID'
  immediate action: <none>  gotos:state 31:  items:    Exp -> 'STRINGLIT' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'RPAR' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'LBRACKET' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'RBRACKET' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'LCURLY' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'RCURLY' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'FUN' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'FN' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'COMMA' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'READ' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'WRITE' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'DEQ' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'LTH' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'EQ' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'OP' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'MAP' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'REDUCE' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'IOTA' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'ARROW' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'PLUS' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'MINUS' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'LESS' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'INT' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'CHAR' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'BOOL' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'IF' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'THEN' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'ELSE' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'LET' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'IN' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'EOF' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'ID' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'CHARLIT' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'NUM' (noprec):   reduce Exp --> 'STRINGLIT'
    action 'error' (noprec):   reduce Exp --> 'STRINGLIT'
    action '#' (noprec):   reduce Exp --> 'STRINGLIT'
    action '$$' (noprec):   reduce Exp --> 'STRINGLIT'
  immediate action:   reduce Exp --> 'STRINGLIT'  gotos:state 32:  items:    Exp -> 'LCURLY' . Exps 'RCURLY'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 53
    goto Exps: 33
state 33:  items:    Exp -> 'LCURLY' Exps . 'RCURLY'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   shift 34
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 34:  items:    Exp -> 'LCURLY' Exps 'RCURLY' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'RPAR' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'LBRACKET' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'RBRACKET' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'LCURLY' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'RCURLY' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'FUN' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'FN' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'COMMA' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'READ' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'WRITE' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'DEQ' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'LTH' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'EQ' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'OP' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'MAP' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'REDUCE' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'IOTA' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'ARROW' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'PLUS' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'MINUS' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'LESS' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'INT' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'CHAR' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'BOOL' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'IF' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'THEN' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'ELSE' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'LET' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'IN' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'EOF' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'ID' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'CHARLIT' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'NUM' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action 'error' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action '#' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
    action '$$' (noprec):   reduce Exp --> 'LCURLY' Exps 'RCURLY'
  immediate action:   reduce Exp --> 'LCURLY' Exps 'RCURLY'  gotos:state 35:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp 'PLUS' Exp . 
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
  actions:    action 'LPAR' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'RPAR' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'LBRACKET' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'RBRACKET' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'LCURLY' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'RCURLY' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'FUN' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'FN' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'COMMA' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'SEMICOLON' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'READ' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'WRITE' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'DEQ' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'LTH' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'EQ' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'OP' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'MAP' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'REDUCE' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'IOTA' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'ARROW' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'PLUS' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'MINUS' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'LESS' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'INT' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'CHAR' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'BOOL' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'IF' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'THEN' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'ELSE' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'LET' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'IN' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'EOF' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'ID' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'STRINGLIT' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'CHARLIT' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'NUM' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action 'error' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action '#' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
    action '$$' (explicit left 9999):   reduce Exp --> Exp 'PLUS' Exp
  immediate action: <none>  gotos:state 36:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp 'MINUS' Exp . 
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
  actions:    action 'LPAR' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'RPAR' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'LBRACKET' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'RBRACKET' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'LCURLY' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'RCURLY' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'FUN' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'FN' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'COMMA' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'SEMICOLON' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'READ' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'WRITE' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'DEQ' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'LTH' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'EQ' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'OP' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'MAP' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'REDUCE' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'IOTA' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'ARROW' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'PLUS' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'MINUS' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'LESS' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'INT' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'CHAR' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'BOOL' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'IF' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'THEN' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'ELSE' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'LET' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'IN' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'EOF' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'ID' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'STRINGLIT' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'CHARLIT' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'NUM' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action 'error' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action '#' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
    action '$$' (explicit left 9999):   reduce Exp --> Exp 'MINUS' Exp
  immediate action: <none>  gotos:state 37:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp 'DEQ' Exp . 
    Exp -> Exp . 'LTH' Exp
  actions:    action 'LPAR' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'RPAR' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'LBRACKET' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'RBRACKET' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'LCURLY' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'RCURLY' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'FUN' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'FN' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'COMMA' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'SEMICOLON' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'READ' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'WRITE' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'DEQ' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'LTH' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'EQ' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'OP' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'MAP' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'REDUCE' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'IOTA' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'ARROW' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'INT' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'CHAR' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'BOOL' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'IF' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'THEN' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'ELSE' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'LET' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'IN' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'EOF' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'ID' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'STRINGLIT' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'CHARLIT' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'NUM' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action 'error' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action '#' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
    action '$$' (explicit left 9998):   reduce Exp --> Exp 'DEQ' Exp
  immediate action: <none>  gotos:state 38:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> Exp 'LTH' Exp . 
  actions:    action 'LPAR' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'RPAR' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'LBRACKET' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'RBRACKET' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'LCURLY' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'RCURLY' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'FUN' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'FN' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'COMMA' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'SEMICOLON' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'READ' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'WRITE' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'DEQ' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'LTH' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'EQ' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'OP' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'MAP' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'REDUCE' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'IOTA' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'ARROW' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'INT' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'CHAR' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'BOOL' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'IF' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'THEN' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'ELSE' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'LET' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'IN' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'EOF' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'ID' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'STRINGLIT' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'CHARLIT' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'NUM' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action 'error' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action '#' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
    action '$$' (explicit left 9998):   reduce Exp --> Exp 'LTH' Exp
  immediate action: <none>  gotos:state 39:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'IF' Exp . 'THEN' Exp 'ELSE' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   shift 61
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 40:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'IF' Exp 'THEN' Exp . 'ELSE' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   shift 62
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 41:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'IF' Exp 'THEN' Exp 'ELSE' Exp . 
  actions:    action 'LPAR' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'RPAR' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'LBRACKET' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'RBRACKET' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'LCURLY' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'RCURLY' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'FUN' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'FN' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'COMMA' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'SEMICOLON' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'READ' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'WRITE' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'OP' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'MAP' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'REDUCE' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'IOTA' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'ARROW' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'INT' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'CHAR' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'BOOL' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'IF' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'THEN' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'ELSE' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'LET' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'IN' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'EOF' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'ID' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'STRINGLIT' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'CHARLIT' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'NUM' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action 'error' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action '#' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
    action '$$' (explicit nonassoc 9997):   reduce Exp --> 'IF' Exp 'THEN' Exp 'ELSE' Exp
  immediate action: <none>  gotos:state 42:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'WRITE' 'LPAR' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 73
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 43:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'IOTA' 'LPAR' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 76
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 44:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'MAP' 'LPAR' FunArg 'COMMA' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 81
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 45:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp . 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   shift 86
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 46:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 87
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 47:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp . 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   shift 91
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 48:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 92
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 49:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'LPAR' Exp . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 94
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 50:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'LET' 'ID' 'EQ' Exp . 'IN' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   shift 98
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 51:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'LET' 'ID' 'EQ' Exp 'IN' Exp . 
  actions:    action 'LPAR' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'RPAR' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'LBRACKET' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'RBRACKET' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'LCURLY' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'RCURLY' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'FUN' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'FN' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'COMMA' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'SEMICOLON' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'READ' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'WRITE' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'OP' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'MAP' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'REDUCE' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'IOTA' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'ARROW' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'INT' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'CHAR' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'BOOL' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'IF' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'THEN' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'ELSE' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'LET' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'IN' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'EOF' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'ID' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'STRINGLIT' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'CHARLIT' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'NUM' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action 'error' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action '#' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
    action '$$' (explicit nonassoc 9997):   reduce Exp --> 'LET' 'ID' 'EQ' Exp 'IN' Exp
  immediate action: <none>  gotos:state 52:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exp -> 'ID' 'LBRACKET' Exp . 'RBRACKET'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   shift 100
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 53:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    Exps -> Exp . 'COMMA' Exps
    Exps -> Exp . 
  actions:    action 'LPAR' (noprec):   reduce Exps --> Exp
    action 'RPAR' (noprec):   reduce Exps --> Exp
    action 'LBRACKET' (noprec):   reduce Exps --> Exp
    action 'RBRACKET' (noprec):   reduce Exps --> Exp
    action 'LCURLY' (noprec):   reduce Exps --> Exp
    action 'RCURLY' (noprec):   reduce Exps --> Exp
    action 'FUN' (noprec):   reduce Exps --> Exp
    action 'FN' (noprec):   reduce Exps --> Exp
    action 'COMMA' (noprec):   shift 101
    action 'SEMICOLON' (noprec):   reduce Exps --> Exp
    action 'READ' (noprec):   reduce Exps --> Exp
    action 'WRITE' (noprec):   reduce Exps --> Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   reduce Exps --> Exp
    action 'OP' (noprec):   reduce Exps --> Exp
    action 'MAP' (noprec):   reduce Exps --> Exp
    action 'REDUCE' (noprec):   reduce Exps --> Exp
    action 'IOTA' (noprec):   reduce Exps --> Exp
    action 'ARROW' (noprec):   reduce Exps --> Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   reduce Exps --> Exp
    action 'INT' (noprec):   reduce Exps --> Exp
    action 'CHAR' (noprec):   reduce Exps --> Exp
    action 'BOOL' (noprec):   reduce Exps --> Exp
    action 'IF' (noprec):   reduce Exps --> Exp
    action 'THEN' (noprec):   reduce Exps --> Exp
    action 'ELSE' (noprec):   reduce Exps --> Exp
    action 'LET' (noprec):   reduce Exps --> Exp
    action 'IN' (noprec):   reduce Exps --> Exp
    action 'EOF' (noprec):   reduce Exps --> Exp
    action 'ID' (noprec):   reduce Exps --> Exp
    action 'STRINGLIT' (noprec):   reduce Exps --> Exp
    action 'CHARLIT' (noprec):   reduce Exps --> Exp
    action 'NUM' (noprec):   reduce Exps --> Exp
    action 'error' (noprec):   reduce Exps --> Exp
    action '#' (noprec):   reduce Exps --> Exp
    action '$$' (noprec):   reduce Exps --> Exp
  immediate action: <none>  gotos:state 54:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    FunArg -> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp . 
  actions:    action 'LPAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'RPAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'LBRACKET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'RBRACKET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'LCURLY' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'RCURLY' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'FUN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'FN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'COMMA' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'SEMICOLON' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'READ' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'WRITE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'OP' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'MAP' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'REDUCE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'IOTA' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'ARROW' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'INT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'CHAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'BOOL' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'IF' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'THEN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'ELSE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'LET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'IN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'EOF' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'ID' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'STRINGLIT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'CHARLIT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'NUM' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action 'error' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action '#' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
    action '$$' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' 'RPAR' 'ARROW' Exp
  immediate action: <none>  gotos:state 55:  items:    Exp -> Exp . 'PLUS' Exp
    Exp -> Exp . 'MINUS' Exp
    Exp -> Exp . 'DEQ' Exp
    Exp -> Exp . 'LTH' Exp
    FunArg -> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp . 
  actions:    action 'LPAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'RPAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'LBRACKET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'RBRACKET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'LCURLY' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'RCURLY' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'FUN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'FN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'COMMA' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'SEMICOLON' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'READ' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'WRITE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'DEQ' (explicit left 9998):   shift 58
    action 'LTH' (explicit left 9998):   shift 59
    action 'EQ' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'OP' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'MAP' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'REDUCE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'IOTA' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'ARROW' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'PLUS' (explicit left 9999):   shift 56
    action 'MINUS' (explicit left 9999):   shift 57
    action 'LESS' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'INT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'CHAR' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'BOOL' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'IF' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'THEN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'ELSE' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'LET' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'IN' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'EOF' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'ID' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'STRINGLIT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'CHARLIT' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'NUM' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action 'error' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action '#' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
    action '$$' (noprec):   reduce FunArg --> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' Exp
  immediate action: <none>  gotos:state 56:  items:    Exp -> Exp 'PLUS' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 35
state 57:  items:    Exp -> Exp 'MINUS' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 36
state 58:  items:    Exp -> Exp 'DEQ' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 37
state 59:  items:    Exp -> Exp 'LTH' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 38
state 60:  items:    Exp -> 'IF' . Exp 'THEN' Exp 'ELSE' Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 39
state 61:  items:    Exp -> 'IF' Exp 'THEN' . Exp 'ELSE' Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 40
state 62:  items:    Exp -> 'IF' Exp 'THEN' Exp 'ELSE' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 41
state 63:  items:    Exp -> 'ID' 'LPAR' . Exps 'RPAR'
    Exp -> 'ID' 'LPAR' . 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   shift 66
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 53
    goto Exps: 64
state 64:  items:    Exp -> 'ID' 'LPAR' Exps . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 65
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 65:  items:    Exp -> 'ID' 'LPAR' Exps 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action '#' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'
  immediate action:   reduce Exp --> 'ID' 'LPAR' Exps 'RPAR'  gotos:state 66:  items:    Exp -> 'ID' 'LPAR' 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action '#' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'ID' 'LPAR' 'RPAR'
  immediate action:   reduce Exp --> 'ID' 'LPAR' 'RPAR'  gotos:state 67:  items:    Exp -> 'READ' . 'LPAR' Type 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 68
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 68:  items:    Exp -> 'READ' 'LPAR' . Type 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 69
state 69:  items:    Exp -> 'READ' 'LPAR' Type . 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 70
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 70:  items:    Exp -> 'READ' 'LPAR' Type 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action '#' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'
  immediate action:   reduce Exp --> 'READ' 'LPAR' Type 'RPAR'  gotos:state 71:  items:    Exp -> 'WRITE' . 'LPAR' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 72
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 72:  items:    Exp -> 'WRITE' 'LPAR' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 42
state 73:  items:    Exp -> 'WRITE' 'LPAR' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'
  immediate action:   reduce Exp --> 'WRITE' 'LPAR' Exp 'RPAR'  gotos:state 74:  items:    Exp -> 'IOTA' . 'LPAR' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 75
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 75:  items:    Exp -> 'IOTA' 'LPAR' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 43
state 76:  items:    Exp -> 'IOTA' 'LPAR' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'
  immediate action:   reduce Exp --> 'IOTA' 'LPAR' Exp 'RPAR'  gotos:state 77:  items:    Exp -> 'MAP' . 'LPAR' FunArg 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 78
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 78:  items:    Exp -> 'MAP' 'LPAR' . FunArg 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   shift 104
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 103
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto FunArg: 79
state 79:  items:    Exp -> 'MAP' 'LPAR' FunArg . 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   shift 80
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 80:  items:    Exp -> 'MAP' 'LPAR' FunArg 'COMMA' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 44
state 81:  items:    Exp -> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'
  immediate action:   reduce Exp --> 'MAP' 'LPAR' FunArg 'COMMA' Exp 'RPAR'  gotos:state 82:  items:    Exp -> 'REDUCE' . 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    Exp -> 'REDUCE' . 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 83
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 83:  items:    Exp -> 'REDUCE' 'LPAR' . FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    Exp -> 'REDUCE' 'LPAR' . 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   shift 104
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   shift 88
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 103
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto FunArg: 84
state 84:  items:    Exp -> 'REDUCE' 'LPAR' FunArg . 'COMMA' Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   shift 85
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 85:  items:    Exp -> 'REDUCE' 'LPAR' FunArg 'COMMA' . Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 45
state 86:  items:    Exp -> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 46
state 87:  items:    Exp -> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'
  immediate action:   reduce Exp --> 'REDUCE' 'LPAR' FunArg 'COMMA' Exp 'COMMA' Exp 'RPAR'  gotos:state 88:  items:    Exp -> 'REDUCE' 'LPAR' 'OP' . BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (explicit left 9999):   shift 27
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto BinOp: 89
state 89:  items:    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp . 'COMMA' Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   shift 90
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 90:  items:    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' . Exp 'COMMA' Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 47
state 91:  items:    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 48
state 92:  items:    Exp -> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'
  immediate action:   reduce Exp --> 'REDUCE' 'LPAR' 'OP' BinOp 'COMMA' Exp 'COMMA' Exp 'RPAR'  gotos:state 93:  items:    Exp -> 'LPAR' . Exp 'RPAR'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 49
state 94:  items:    Exp -> 'LPAR' Exp 'RPAR' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'RPAR' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'LBRACKET' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'RBRACKET' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'LCURLY' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'RCURLY' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'FUN' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'FN' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'COMMA' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'READ' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'WRITE' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'DEQ' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'LTH' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'EQ' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'OP' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'MAP' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'REDUCE' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'IOTA' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'ARROW' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'PLUS' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'MINUS' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'LESS' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'INT' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'CHAR' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'BOOL' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'IF' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'THEN' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'ELSE' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'LET' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'IN' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'EOF' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'ID' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'CHARLIT' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'NUM' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action 'error' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action '#' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
    action '$$' (noprec):   reduce Exp --> 'LPAR' Exp 'RPAR'
  immediate action:   reduce Exp --> 'LPAR' Exp 'RPAR'  gotos:state 95:  items:    Exp -> 'LET' . 'ID' 'EQ' Exp 'IN' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 96
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 96:  items:    Exp -> 'LET' 'ID' . 'EQ' Exp 'IN' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   shift 97
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 97:  items:    Exp -> 'LET' 'ID' 'EQ' . Exp 'IN' Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 50
state 98:  items:    Exp -> 'LET' 'ID' 'EQ' Exp 'IN' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 51
state 99:  items:    Exp -> 'ID' 'LBRACKET' . Exp 'RBRACKET'
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 52
state 100:  items:    Exp -> 'ID' 'LBRACKET' Exp 'RBRACKET' . 
  actions:    action 'LPAR' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'RPAR' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'LBRACKET' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'RBRACKET' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'LCURLY' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'RCURLY' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'FUN' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'FN' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'COMMA' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'SEMICOLON' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'READ' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'WRITE' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'DEQ' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'LTH' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'EQ' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'OP' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'MAP' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'REDUCE' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'IOTA' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'ARROW' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'PLUS' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'MINUS' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'LESS' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'INT' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'CHAR' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'BOOL' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'IF' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'THEN' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'ELSE' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'LET' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'IN' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'EOF' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'ID' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'STRINGLIT' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'CHARLIT' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'NUM' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action 'error' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action '#' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
    action '$$' (noprec):   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'
  immediate action:   reduce Exp --> 'ID' 'LBRACKET' Exp 'RBRACKET'  gotos:state 101:  items:    Exps -> Exp 'COMMA' . Exps
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 53
    goto Exps: 102
state 102:  items:    Exps -> Exp 'COMMA' Exps . 
  actions:    action 'LPAR' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'RPAR' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'LBRACKET' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'RBRACKET' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'LCURLY' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'RCURLY' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'FUN' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'FN' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'COMMA' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'SEMICOLON' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'READ' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'WRITE' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'DEQ' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'LTH' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'EQ' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'OP' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'MAP' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'REDUCE' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'IOTA' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'ARROW' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'PLUS' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'MINUS' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'LESS' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'INT' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'CHAR' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'BOOL' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'IF' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'THEN' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'ELSE' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'LET' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'IN' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'EOF' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'ID' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'STRINGLIT' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'CHARLIT' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'NUM' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action 'error' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action '#' (noprec):   reduce Exps --> Exp 'COMMA' Exps
    action '$$' (noprec):   reduce Exps --> Exp 'COMMA' Exps
  immediate action:   reduce Exps --> Exp 'COMMA' Exps  gotos:state 103:  items:    FunArg -> 'ID' . 
  actions:    action 'LPAR' (noprec):   reduce FunArg --> 'ID'
    action 'RPAR' (noprec):   reduce FunArg --> 'ID'
    action 'LBRACKET' (noprec):   reduce FunArg --> 'ID'
    action 'RBRACKET' (noprec):   reduce FunArg --> 'ID'
    action 'LCURLY' (noprec):   reduce FunArg --> 'ID'
    action 'RCURLY' (noprec):   reduce FunArg --> 'ID'
    action 'FUN' (noprec):   reduce FunArg --> 'ID'
    action 'FN' (noprec):   reduce FunArg --> 'ID'
    action 'COMMA' (noprec):   reduce FunArg --> 'ID'
    action 'SEMICOLON' (noprec):   reduce FunArg --> 'ID'
    action 'READ' (noprec):   reduce FunArg --> 'ID'
    action 'WRITE' (noprec):   reduce FunArg --> 'ID'
    action 'DEQ' (noprec):   reduce FunArg --> 'ID'
    action 'LTH' (noprec):   reduce FunArg --> 'ID'
    action 'EQ' (noprec):   reduce FunArg --> 'ID'
    action 'OP' (noprec):   reduce FunArg --> 'ID'
    action 'MAP' (noprec):   reduce FunArg --> 'ID'
    action 'REDUCE' (noprec):   reduce FunArg --> 'ID'
    action 'IOTA' (noprec):   reduce FunArg --> 'ID'
    action 'ARROW' (noprec):   reduce FunArg --> 'ID'
    action 'PLUS' (noprec):   reduce FunArg --> 'ID'
    action 'MINUS' (noprec):   reduce FunArg --> 'ID'
    action 'LESS' (noprec):   reduce FunArg --> 'ID'
    action 'INT' (noprec):   reduce FunArg --> 'ID'
    action 'CHAR' (noprec):   reduce FunArg --> 'ID'
    action 'BOOL' (noprec):   reduce FunArg --> 'ID'
    action 'IF' (noprec):   reduce FunArg --> 'ID'
    action 'THEN' (noprec):   reduce FunArg --> 'ID'
    action 'ELSE' (noprec):   reduce FunArg --> 'ID'
    action 'LET' (noprec):   reduce FunArg --> 'ID'
    action 'IN' (noprec):   reduce FunArg --> 'ID'
    action 'EOF' (noprec):   reduce FunArg --> 'ID'
    action 'ID' (noprec):   reduce FunArg --> 'ID'
    action 'STRINGLIT' (noprec):   reduce FunArg --> 'ID'
    action 'CHARLIT' (noprec):   reduce FunArg --> 'ID'
    action 'NUM' (noprec):   reduce FunArg --> 'ID'
    action 'error' (noprec):   reduce FunArg --> 'ID'
    action '#' (noprec):   reduce FunArg --> 'ID'
    action '$$' (noprec):   reduce FunArg --> 'ID'
  immediate action:   reduce FunArg --> 'ID'  gotos:state 104:  items:    FunArg -> 'FN' . Type 'LPAR' 'RPAR' 'ARROW' Exp
    FunArg -> 'FN' . Type 'LPAR' Params 'RPAR' 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 105
state 105:  items:    FunArg -> 'FN' Type . 'LPAR' 'RPAR' 'ARROW' Exp
    FunArg -> 'FN' Type . 'LPAR' Params 'RPAR' 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   shift 106
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 106:  items:    FunArg -> 'FN' Type 'LPAR' . 'RPAR' 'ARROW' Exp
    FunArg -> 'FN' Type 'LPAR' . Params 'RPAR' 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 107
    action 'LBRACKET' (noprec):   shift 20
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   shift 17
    action 'CHAR' (noprec):   shift 18
    action 'BOOL' (noprec):   shift 19
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Type: 23
    goto Params: 109
state 107:  items:    FunArg -> 'FN' Type 'LPAR' 'RPAR' . 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   shift 108
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 108:  items:    FunArg -> 'FN' Type 'LPAR' 'RPAR' 'ARROW' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 54
state 109:  items:    FunArg -> 'FN' Type 'LPAR' Params . 'RPAR' 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   shift 110
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 110:  items:    FunArg -> 'FN' Type 'LPAR' Params 'RPAR' . 'ARROW' Exp
  actions:    action 'LPAR' (noprec):   error
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   error
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   error
    action 'WRITE' (noprec):   error
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   error
    action 'REDUCE' (noprec):   error
    action 'IOTA' (noprec):   error
    action 'ARROW' (noprec):   shift 111
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   error
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   error
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   error
    action 'STRINGLIT' (noprec):   error
    action 'CHARLIT' (noprec):   error
    action 'NUM' (noprec):   error
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:state 111:  items:    FunArg -> 'FN' Type 'LPAR' Params 'RPAR' 'ARROW' . Exp
  actions:    action 'LPAR' (noprec):   shift 93
    action 'RPAR' (noprec):   error
    action 'LBRACKET' (noprec):   error
    action 'RBRACKET' (noprec):   error
    action 'LCURLY' (noprec):   shift 32
    action 'RCURLY' (noprec):   error
    action 'FUN' (noprec):   error
    action 'FN' (noprec):   error
    action 'COMMA' (noprec):   error
    action 'SEMICOLON' (noprec):   error
    action 'READ' (noprec):   shift 67
    action 'WRITE' (noprec):   shift 71
    action 'DEQ' (noprec):   error
    action 'LTH' (noprec):   error
    action 'EQ' (noprec):   error
    action 'OP' (noprec):   error
    action 'MAP' (noprec):   shift 77
    action 'REDUCE' (noprec):   shift 82
    action 'IOTA' (noprec):   shift 74
    action 'ARROW' (noprec):   error
    action 'PLUS' (noprec):   error
    action 'MINUS' (noprec):   error
    action 'LESS' (noprec):   error
    action 'INT' (noprec):   error
    action 'CHAR' (noprec):   error
    action 'BOOL' (noprec):   error
    action 'IF' (noprec):   shift 60
    action 'THEN' (noprec):   error
    action 'ELSE' (noprec):   error
    action 'LET' (noprec):   shift 95
    action 'IN' (noprec):   error
    action 'EOF' (noprec):   error
    action 'ID' (noprec):   shift 30
    action 'STRINGLIT' (noprec):   shift 31
    action 'CHARLIT' (noprec):   shift 29
    action 'NUM' (noprec):   shift 28
    action 'error' (noprec):   error
    action '#' (noprec):   error
    action '$$' (noprec):   error
  immediate action: <none>  gotos:    goto Exp: 55

startStates = 0
------------------------
