-----------------------------------------------------------------------------
Info file generated by Happy Version 1.20.1.1 from ParserM.y
-----------------------------------------------------------------------------

state 10 contains 7 shift/reduce conflicts.

terminal 'refl' is unused
terminal '{' is unused
terminal '}' is unused
terminal '*' is unused
terminal '|' is unused
terminal ',' is unused
terminal ';' is unused

-----------------------------------------------------------------------------
Grammar
-----------------------------------------------------------------------------
	%start_calc -> program                             (0)
	program -> declas                                  (1)
	program ->                                         (2)
	declas -> decla declas                             (3)
	declas -> decla                                    (4)
	decla -> Id '::' term '.'                          (5)
	decla -> Id '=' term '.'                           (6)
	term -> factors                                    (7)
	term -> '\\' Id '.' term                           (8)
	term -> letExpr                                    (9)
	term -> ifExpr                                     (10)
	factors -> factor                                  (11)
	factors -> factors factor                          (12)
	factor -> bconst                                   (13)
	factor -> expProdOrAnnotOrParens                   (14)
	factor -> Id                                       (15)
	letExpr -> 'let' Id '=' term 'in' term             (16)
	ifExpr -> 'if' term 'then' term 'else' term        (17)
	bconst -> 'Unit'                                   (18)
	bconst -> '(' ')'                                  (19)
	bconst -> 'Bool'                                   (20)
	bconst -> 'True'                                   (21)
	bconst -> 'False'                                  (22)
	bconst -> 'Type'                                   (23)
	afterBinder -> '->' term                           (24)
	afterColon -> ':' term                             (25)
	beforeBinder -> '(' term optional__afterColon__ ')'   (26)
	expProdOrAnnotOrParens -> beforeBinder optional__afterBinder__   (27)
	optional__afterBinder__ -> afterBinder             (28)
	optional__afterBinder__ ->                         (29)
	optional__afterColon__ -> afterColon               (30)
	optional__afterColon__ ->                          (31)

-----------------------------------------------------------------------------
Terminals
-----------------------------------------------------------------------------
	'Type'         { TokenUniverse }
	'Bool'         { TokenTBool }
	'True'         { TokenTrue }
	'False'        { TokenFalse }
	'let'          { TokenLet }
	'Unit'         { TokenUnit }
	'if'           { TokenIf }
	'then'         { TokenThen }
	'else'         { TokenElse }
	'refl'         { TokenRefl }
	'('            { TokenLP }
	')'            { TokenRP }
	'='            { TokenEqual }
	'.'            { TokenDot }
	'\\'           { TokenSlash }
	'{'            { TokenLB }
	'}'            { TokenRB }
	':'            { TokenColon }
	'::'           { TokenTypeDef }
	'->'           { TokenArrow }
	'in'           { TokenIn }
	'*'            { TokenTimes }
	'|'            { TokenLine }
	','            { TokenComma }
	';'            { TokenSemicolon }
	Id             { TokenId $$ }

-----------------------------------------------------------------------------
Non-terminals
-----------------------------------------------------------------------------
	%start_calc     rule  0
	program         rules 1, 2
	declas          rules 3, 4
	decla           rules 5, 6
	term            rules 7, 8, 9, 10
	factors         rules 11, 12
	factor          rules 13, 14, 15
	letExpr         rule  16
	ifExpr          rule  17
	bconst          rules 18, 19, 20, 21, 22, 23
	afterBinder     rule  24
	afterColon      rule  25
	beforeBinder    rule  26
	expProdOrAnnotOrParens rule  27
	optional__afterBinder__ rules 28, 29
	optional__afterColon__ rules 30, 31

-----------------------------------------------------------------------------
States
-----------------------------------------------------------------------------
State 0

	%start_calc -> . program                            (rule 0)

	Id             shift, and enter state 4
	%eof           reduce using rule 2

	program        goto state 5
	declas         goto state 2
	decla          goto state 3

State 1

	program -> . declas                                 (rule 1)

	Id             shift, and enter state 4

	declas         goto state 2
	decla          goto state 3

State 2

	program -> declas .                                 (rule 1)

	%eof           reduce using rule 1


State 3

	declas -> decla . declas                            (rule 3)
	declas -> decla .                                   (rule 4)

	Id             shift, and enter state 4
	%eof           reduce using rule 4

	declas         goto state 8
	decla          goto state 3

State 4

	decla -> Id . '::' term '.'                         (rule 5)
	decla -> Id . '=' term '.'                          (rule 6)

	'='            shift, and enter state 6
	'::'           shift, and enter state 7


State 5

	%start_calc -> program .                            (rule 0)

	%eof           accept


State 6

	decla -> Id '=' . term '.'                          (rule 6)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 27
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 7

	decla -> Id '::' . term '.'                         (rule 5)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 9
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 8

	declas -> decla declas .                            (rule 3)

	%eof           reduce using rule 3


State 9

	decla -> Id '::' term . '.'                         (rule 5)

	'.'            shift, and enter state 38


State 10

	term -> factors .                                   (rule 7)
	factors -> factors . factor                         (rule 12)

	'Type'         shift, and enter state 17
			(reduce using rule 7)

	'Bool'         shift, and enter state 18
			(reduce using rule 7)

	'True'         shift, and enter state 19
			(reduce using rule 7)

	'False'        shift, and enter state 20
			(reduce using rule 7)

	'Unit'         shift, and enter state 22
			(reduce using rule 7)

	'then'         reduce using rule 7
	'else'         reduce using rule 7
	'('            shift, and enter state 24
			(reduce using rule 7)

	')'            reduce using rule 7
	'.'            reduce using rule 7
	':'            reduce using rule 7
	'in'           reduce using rule 7
	Id             shift, and enter state 26
			(reduce using rule 7)


	factor         goto state 37
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 11

	factors -> factor .                                 (rule 11)

	'Type'         reduce using rule 11
	'Bool'         reduce using rule 11
	'True'         reduce using rule 11
	'False'        reduce using rule 11
	'Unit'         reduce using rule 11
	'then'         reduce using rule 11
	'else'         reduce using rule 11
	'('            reduce using rule 11
	')'            reduce using rule 11
	'.'            reduce using rule 11
	':'            reduce using rule 11
	'in'           reduce using rule 11
	Id             reduce using rule 11


State 12

	term -> letExpr .                                   (rule 9)

	'Type'         reduce using rule 9
	'Bool'         reduce using rule 9
	'True'         reduce using rule 9
	'False'        reduce using rule 9
	'Unit'         reduce using rule 9
	'then'         reduce using rule 9
	'else'         reduce using rule 9
	'('            reduce using rule 9
	')'            reduce using rule 9
	'.'            reduce using rule 9
	':'            reduce using rule 9
	'in'           reduce using rule 9
	Id             reduce using rule 9


State 13

	term -> ifExpr .                                    (rule 10)

	'Type'         reduce using rule 10
	'Bool'         reduce using rule 10
	'True'         reduce using rule 10
	'False'        reduce using rule 10
	'Unit'         reduce using rule 10
	'then'         reduce using rule 10
	'else'         reduce using rule 10
	'('            reduce using rule 10
	')'            reduce using rule 10
	'.'            reduce using rule 10
	':'            reduce using rule 10
	'in'           reduce using rule 10
	Id             reduce using rule 10


State 14

	factor -> bconst .                                  (rule 13)

	'Type'         reduce using rule 13
	'Bool'         reduce using rule 13
	'True'         reduce using rule 13
	'False'        reduce using rule 13
	'Unit'         reduce using rule 13
	'then'         reduce using rule 13
	'else'         reduce using rule 13
	'('            reduce using rule 13
	')'            reduce using rule 13
	'.'            reduce using rule 13
	':'            reduce using rule 13
	'in'           reduce using rule 13
	Id             reduce using rule 13


State 15

	expProdOrAnnotOrParens -> beforeBinder . optional__afterBinder__    (rule 27)

	'Type'         reduce using rule 29
	'Bool'         reduce using rule 29
	'True'         reduce using rule 29
	'False'        reduce using rule 29
	'Unit'         reduce using rule 29
	'then'         reduce using rule 29
	'else'         reduce using rule 29
	'('            reduce using rule 29
	')'            reduce using rule 29
	'.'            reduce using rule 29
	':'            reduce using rule 29
	'->'           shift, and enter state 36
	'in'           reduce using rule 29
	Id             reduce using rule 29

	afterBinder    goto state 34
	optional__afterBinder__goto state 35

State 16

	factor -> expProdOrAnnotOrParens .                  (rule 14)

	'Type'         reduce using rule 14
	'Bool'         reduce using rule 14
	'True'         reduce using rule 14
	'False'        reduce using rule 14
	'Unit'         reduce using rule 14
	'then'         reduce using rule 14
	'else'         reduce using rule 14
	'('            reduce using rule 14
	')'            reduce using rule 14
	'.'            reduce using rule 14
	':'            reduce using rule 14
	'in'           reduce using rule 14
	Id             reduce using rule 14


State 17

	bconst -> 'Type' .                                  (rule 23)

	'Type'         reduce using rule 23
	'Bool'         reduce using rule 23
	'True'         reduce using rule 23
	'False'        reduce using rule 23
	'Unit'         reduce using rule 23
	'then'         reduce using rule 23
	'else'         reduce using rule 23
	'('            reduce using rule 23
	')'            reduce using rule 23
	'.'            reduce using rule 23
	':'            reduce using rule 23
	'in'           reduce using rule 23
	Id             reduce using rule 23


State 18

	bconst -> 'Bool' .                                  (rule 20)

	'Type'         reduce using rule 20
	'Bool'         reduce using rule 20
	'True'         reduce using rule 20
	'False'        reduce using rule 20
	'Unit'         reduce using rule 20
	'then'         reduce using rule 20
	'else'         reduce using rule 20
	'('            reduce using rule 20
	')'            reduce using rule 20
	'.'            reduce using rule 20
	':'            reduce using rule 20
	'in'           reduce using rule 20
	Id             reduce using rule 20


State 19

	bconst -> 'True' .                                  (rule 21)

	'Type'         reduce using rule 21
	'Bool'         reduce using rule 21
	'True'         reduce using rule 21
	'False'        reduce using rule 21
	'Unit'         reduce using rule 21
	'then'         reduce using rule 21
	'else'         reduce using rule 21
	'('            reduce using rule 21
	')'            reduce using rule 21
	'.'            reduce using rule 21
	':'            reduce using rule 21
	'in'           reduce using rule 21
	Id             reduce using rule 21


State 20

	bconst -> 'False' .                                 (rule 22)

	'Type'         reduce using rule 22
	'Bool'         reduce using rule 22
	'True'         reduce using rule 22
	'False'        reduce using rule 22
	'Unit'         reduce using rule 22
	'then'         reduce using rule 22
	'else'         reduce using rule 22
	'('            reduce using rule 22
	')'            reduce using rule 22
	'.'            reduce using rule 22
	':'            reduce using rule 22
	'in'           reduce using rule 22
	Id             reduce using rule 22


State 21

	letExpr -> 'let' . Id '=' term 'in' term            (rule 16)

	Id             shift, and enter state 33


State 22

	bconst -> 'Unit' .                                  (rule 18)

	'Type'         reduce using rule 18
	'Bool'         reduce using rule 18
	'True'         reduce using rule 18
	'False'        reduce using rule 18
	'Unit'         reduce using rule 18
	'then'         reduce using rule 18
	'else'         reduce using rule 18
	'('            reduce using rule 18
	')'            reduce using rule 18
	'.'            reduce using rule 18
	':'            reduce using rule 18
	'in'           reduce using rule 18
	Id             reduce using rule 18


State 23

	ifExpr -> 'if' . term 'then' term 'else' term       (rule 17)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 32
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 24

	bconst -> '(' . ')'                                 (rule 19)
	beforeBinder -> '(' . term optional__afterColon__ ')'    (rule 26)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	')'            shift, and enter state 31
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 30
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 25

	term -> '\\' . Id '.' term                          (rule 8)

	Id             shift, and enter state 29


State 26

	factor -> Id .                                      (rule 15)

	'Type'         reduce using rule 15
	'Bool'         reduce using rule 15
	'True'         reduce using rule 15
	'False'        reduce using rule 15
	'Unit'         reduce using rule 15
	'then'         reduce using rule 15
	'else'         reduce using rule 15
	'('            reduce using rule 15
	')'            reduce using rule 15
	'.'            reduce using rule 15
	':'            reduce using rule 15
	'in'           reduce using rule 15
	Id             reduce using rule 15


State 27

	decla -> Id '=' term . '.'                          (rule 6)

	'.'            shift, and enter state 28


State 28

	decla -> Id '=' term '.' .                          (rule 6)

	Id             reduce using rule 6
	%eof           reduce using rule 6


State 29

	term -> '\\' Id . '.' term                          (rule 8)

	'.'            shift, and enter state 45


State 30

	beforeBinder -> '(' term . optional__afterColon__ ')'    (rule 26)

	')'            reduce using rule 31
	':'            shift, and enter state 44

	afterColon     goto state 42
	optional__afterColon__goto state 43

State 31

	bconst -> '(' ')' .                                 (rule 19)

	'Type'         reduce using rule 19
	'Bool'         reduce using rule 19
	'True'         reduce using rule 19
	'False'        reduce using rule 19
	'Unit'         reduce using rule 19
	'then'         reduce using rule 19
	'else'         reduce using rule 19
	'('            reduce using rule 19
	')'            reduce using rule 19
	'.'            reduce using rule 19
	':'            reduce using rule 19
	'in'           reduce using rule 19
	Id             reduce using rule 19


State 32

	ifExpr -> 'if' term . 'then' term 'else' term       (rule 17)

	'then'         shift, and enter state 41


State 33

	letExpr -> 'let' Id . '=' term 'in' term            (rule 16)

	'='            shift, and enter state 40


State 34

	optional__afterBinder__ -> afterBinder .            (rule 28)

	'Type'         reduce using rule 28
	'Bool'         reduce using rule 28
	'True'         reduce using rule 28
	'False'        reduce using rule 28
	'Unit'         reduce using rule 28
	'then'         reduce using rule 28
	'else'         reduce using rule 28
	'('            reduce using rule 28
	')'            reduce using rule 28
	'.'            reduce using rule 28
	':'            reduce using rule 28
	'in'           reduce using rule 28
	Id             reduce using rule 28


State 35

	expProdOrAnnotOrParens -> beforeBinder optional__afterBinder__ .    (rule 27)

	'Type'         reduce using rule 27
	'Bool'         reduce using rule 27
	'True'         reduce using rule 27
	'False'        reduce using rule 27
	'Unit'         reduce using rule 27
	'then'         reduce using rule 27
	'else'         reduce using rule 27
	'('            reduce using rule 27
	')'            reduce using rule 27
	'.'            reduce using rule 27
	':'            reduce using rule 27
	'in'           reduce using rule 27
	Id             reduce using rule 27


State 36

	afterBinder -> '->' . term                          (rule 24)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 39
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 37

	factors -> factors factor .                         (rule 12)

	'Type'         reduce using rule 12
	'Bool'         reduce using rule 12
	'True'         reduce using rule 12
	'False'        reduce using rule 12
	'Unit'         reduce using rule 12
	'then'         reduce using rule 12
	'else'         reduce using rule 12
	'('            reduce using rule 12
	')'            reduce using rule 12
	'.'            reduce using rule 12
	':'            reduce using rule 12
	'in'           reduce using rule 12
	Id             reduce using rule 12


State 38

	decla -> Id '::' term '.' .                         (rule 5)

	Id             reduce using rule 5
	%eof           reduce using rule 5


State 39

	afterBinder -> '->' term .                          (rule 24)

	'Type'         reduce using rule 24
	'Bool'         reduce using rule 24
	'True'         reduce using rule 24
	'False'        reduce using rule 24
	'Unit'         reduce using rule 24
	'then'         reduce using rule 24
	'else'         reduce using rule 24
	'('            reduce using rule 24
	')'            reduce using rule 24
	'.'            reduce using rule 24
	':'            reduce using rule 24
	'in'           reduce using rule 24
	Id             reduce using rule 24


State 40

	letExpr -> 'let' Id '=' . term 'in' term            (rule 16)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 50
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 41

	ifExpr -> 'if' term 'then' . term 'else' term       (rule 17)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 49
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 42

	optional__afterColon__ -> afterColon .              (rule 30)

	')'            reduce using rule 30


State 43

	beforeBinder -> '(' term optional__afterColon__ . ')'    (rule 26)

	')'            shift, and enter state 48


State 44

	afterColon -> ':' . term                            (rule 25)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 47
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 45

	term -> '\\' Id '.' . term                          (rule 8)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 46
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 46

	term -> '\\' Id '.' term .                          (rule 8)

	'Type'         reduce using rule 8
	'Bool'         reduce using rule 8
	'True'         reduce using rule 8
	'False'        reduce using rule 8
	'Unit'         reduce using rule 8
	'then'         reduce using rule 8
	'else'         reduce using rule 8
	'('            reduce using rule 8
	')'            reduce using rule 8
	'.'            reduce using rule 8
	':'            reduce using rule 8
	'in'           reduce using rule 8
	Id             reduce using rule 8


State 47

	afterColon -> ':' term .                            (rule 25)

	')'            reduce using rule 25


State 48

	beforeBinder -> '(' term optional__afterColon__ ')' .    (rule 26)

	'Type'         reduce using rule 26
	'Bool'         reduce using rule 26
	'True'         reduce using rule 26
	'False'        reduce using rule 26
	'Unit'         reduce using rule 26
	'then'         reduce using rule 26
	'else'         reduce using rule 26
	'('            reduce using rule 26
	')'            reduce using rule 26
	'.'            reduce using rule 26
	':'            reduce using rule 26
	'->'           reduce using rule 26
	'in'           reduce using rule 26
	Id             reduce using rule 26


State 49

	ifExpr -> 'if' term 'then' term . 'else' term       (rule 17)

	'else'         shift, and enter state 52


State 50

	letExpr -> 'let' Id '=' term . 'in' term            (rule 16)

	'in'           shift, and enter state 51


State 51

	letExpr -> 'let' Id '=' term 'in' . term            (rule 16)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 54
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 52

	ifExpr -> 'if' term 'then' term 'else' . term       (rule 17)

	'Type'         shift, and enter state 17
	'Bool'         shift, and enter state 18
	'True'         shift, and enter state 19
	'False'        shift, and enter state 20
	'let'          shift, and enter state 21
	'Unit'         shift, and enter state 22
	'if'           shift, and enter state 23
	'('            shift, and enter state 24
	'\\'           shift, and enter state 25
	Id             shift, and enter state 26

	term           goto state 53
	factors        goto state 10
	factor         goto state 11
	letExpr        goto state 12
	ifExpr         goto state 13
	bconst         goto state 14
	beforeBinder   goto state 15
	expProdOrAnnotOrParensgoto state 16

State 53

	ifExpr -> 'if' term 'then' term 'else' term .       (rule 17)

	'Type'         reduce using rule 17
	'Bool'         reduce using rule 17
	'True'         reduce using rule 17
	'False'        reduce using rule 17
	'Unit'         reduce using rule 17
	'then'         reduce using rule 17
	'else'         reduce using rule 17
	'('            reduce using rule 17
	')'            reduce using rule 17
	'.'            reduce using rule 17
	':'            reduce using rule 17
	'in'           reduce using rule 17
	Id             reduce using rule 17


State 54

	letExpr -> 'let' Id '=' term 'in' term .            (rule 16)

	'Type'         reduce using rule 16
	'Bool'         reduce using rule 16
	'True'         reduce using rule 16
	'False'        reduce using rule 16
	'Unit'         reduce using rule 16
	'then'         reduce using rule 16
	'else'         reduce using rule 16
	'('            reduce using rule 16
	')'            reduce using rule 16
	'.'            reduce using rule 16
	':'            reduce using rule 16
	'in'           reduce using rule 16
	Id             reduce using rule 16


-----------------------------------------------------------------------------
Grammar Totals
-----------------------------------------------------------------------------
Number of rules: 32
Number of terminals: 26
Number of non-terminals: 16
Number of states: 55
