A204: Nodes<Defn> 
1:1-66:7
 A1: TypDefn i 
1:1-1:11
 A0: AtomType INT 
1:9-1:11
 A3: TypDefn c 
2:1-2:12
 A2: AtomType CHAR 
2:9-2:12
 A5: TypDefn b 
3:1-3:12
 A4: AtomType BOOL 
3:9-3:12
 A7: VarDefn g1 
5:1-5:10
 A6: NameType i 
5:10-5:10
defAt: A1 @ 1:1-1:11
 A9: VarDefn g2 
6:1-6:10
 A8: NameType i 
6:10-6:10
defAt: A1 @ 1:1-1:11
 A16: ExtFunDefn ext 
8:1-8:26
 A15: Nodes<ParDefn> 
8:8-8:22
 A11: ParDefn a 
8:9-8:13
 A10: NameType i 
8:13-8:13
defAt: A1 @ 1:1-1:11
 A13: ParDefn bb 
8:16-8:21
 A12: NameType i 
8:21-8:21
defAt: A1 @ 1:1-1:11
 A14: NameType i 
8:26-8:26
defAt: A1 @ 1:1-1:11
 A26: DefFunDefn helper 
10:1-11:10
 A23: Nodes<ParDefn> 
10:11-10:17
 A18: ParDefn x 
10:12-10:16
 A17: NameType i 
10:16-10:16
defAt: A1 @ 1:1-1:11
 A19: NameType b 
10:21-10:21
defAt: A5 @ 3:1-3:12
 A25: Exprs 
11:5-11:10
 A24: Nodes<Expr> 
11:5-11:10
 A22: BinExpr EQU 
11:5-11:10
 A20: NameExpr x 
11:5-11:5
defAt: A18 @ 10:12-10:16
 A21: AtomExpr 0 
11:10-11:10
 A64: DefFunDefn fib 
13:1-22:7
 A61: Nodes<ParDefn> 
13:8-13:14
 A28: ParDefn n 
13:9-13:13
 A27: NameType i 
13:13-13:13
defAt: A1 @ 1:1-1:11
 A29: NameType i 
13:18-13:18
defAt: A1 @ 1:1-1:11
 A63: Exprs 
14:5-22:7
 A62: Nodes<Expr> 
14:5-22:7
 A60: IfThenElseExpr 
14:5-22:7
 A32: BinExpr EQU 
14:8-14:13
 A30: NameExpr n 
14:8-14:8
defAt: A28 @ 13:9-13:13
 A31: AtomExpr 0 
14:13-14:13
 A57: Exprs 
15:9-15:9
 A56: Nodes<Expr> 
15:9-15:9
 A33: AtomExpr 0 
15:9-15:9
 A59: Exprs 
17:9-21:11
 A58: Nodes<Expr> 
17:9-21:11
 A55: IfThenElseExpr 
17:9-21:11
 A36: BinExpr EQU 
17:12-17:17
 A34: NameExpr n 
17:12-17:12
defAt: A28 @ 13:9-13:13
 A35: AtomExpr 1 
17:17-17:17
 A52: Exprs 
18:13-18:13
 A51: Nodes<Expr> 
18:13-18:13
 A37: AtomExpr 1 
18:13-18:13
 A54: Exprs 
20:13-20:35
 A53: Nodes<Expr> 
20:13-20:35
 A50: BinExpr ADD 
20:13-20:35
 A43: CallExpr 
20:13-20:22
 A38: NameExpr fib 
20:13-20:15
defAt: A64 @ 13:1-22:7
 A42: Nodes<Expr> 
20:16-20:22
 A41: BinExpr SUB 
20:17-20:21
 A39: NameExpr n 
20:17-20:17
defAt: A28 @ 13:9-13:13
 A40: AtomExpr 1 
20:21-20:21
 A49: CallExpr 
20:26-20:35
 A44: NameExpr fib 
20:26-20:28
defAt: A64 @ 13:1-22:7
 A48: Nodes<Expr> 
20:29-20:35
 A47: BinExpr SUB 
20:30-20:34
 A45: NameExpr n 
20:30-20:30
defAt: A28 @ 13:9-13:13
 A46: AtomExpr 2 
20:34-20:34
 A203: DefFunDefn main 
24:1-66:7
 A200: Nodes<ParDefn> 
 A65: NameType i 
24:14-24:14
defAt: A1 @ 1:1-1:11
 A202: Exprs 
25:5-66:7
 A201: Nodes<Expr> 
25:5-66:7
 A199: LetExpr 
25:5-66:7
 A196: Nodes<Defn> 
26:9-35:15
 A67: VarDefn local1 
26:9-26:22
 A66: NameType i 
26:22-26:22
defAt: A1 @ 1:1-1:11
 A69: VarDefn local2 
27:9-27:22
 A68: NameType i 
27:22-27:22
defAt: A1 @ 1:1-1:11
 A71: TypDefn li 
28:9-28:18
 A70: NameType i 
28:18-28:18
defAt: A1 @ 1:1-1:11
 A94: DefFunDefn inner 
29:9-35:15
 A91: Nodes<ParDefn> 
29:18-29:34
 A73: ParDefn a 
29:19-29:24
 A72: NameType li 
29:23-29:24
defAt: A71 @ 28:9-28:18
 A75: ParDefn bb 
29:27-29:33
 A74: NameType li 
29:32-29:33
defAt: A71 @ 28:9-28:18
 A76: NameType li 
29:38-29:39
defAt: A71 @ 28:9-28:18
 A93: Exprs 
30:13-35:15
 A92: Nodes<Expr> 
30:13-35:15
 A90: LetExpr 
30:13-35:15
 A87: Nodes<Defn> 
31:17-31:28
 A78: VarDefn tmp 
31:17-31:28
 A77: NameType li 
31:27-31:28
defAt: A71 @ 28:9-28:18
 A89: Exprs 
33:17-34:23
 A88: Nodes<Expr> 
33:17-34:23
 A83: AsgnExpr 
33:17-33:28
 A79: NameExpr tmp 
33:17-33:19
defAt: A78 @ 31:17-31:28
 A82: BinExpr ADD 
33:23-33:28
 A80: NameExpr a 
33:23-33:23
defAt: A73 @ 29:19-29:24
 A81: NameExpr bb 
33:27-33:28
defAt: A75 @ 29:27-29:33
 A86: BinExpr MUL 
34:17-34:23
 A84: NameExpr tmp 
34:17-34:19
defAt: A78 @ 31:17-31:28
 A85: AtomExpr 2 
34:23-34:23
 A198: Exprs 
37:9-65:11
 A197: Nodes<Expr> 
37:9-65:11
 A97: AsgnExpr 
37:9-37:15
 A95: NameExpr g1 
37:9-37:10
defAt: A7 @ 5:1-5:10
 A96: AtomExpr 10 
37:14-37:15
 A100: AsgnExpr 
38:9-38:15
 A98: NameExpr g2 
38:9-38:10
defAt: A9 @ 6:1-6:10
 A99: AtomExpr 20 
38:14-38:15
 A106: AsgnExpr 
39:9-39:24
 A101: NameExpr local1 
39:9-39:14
defAt: A67 @ 26:9-26:22
 A105: CallExpr 
39:18-39:24
 A102: NameExpr fib 
39:18-39:20
defAt: A64 @ 13:1-22:7
 A104: Nodes<Expr> 
39:21-39:24
 A103: NameExpr g1 
39:22-39:23
defAt: A7 @ 5:1-5:10
 A113: AsgnExpr 
40:9-40:30
 A107: NameExpr local2 
40:9-40:14
defAt: A69 @ 27:9-27:22
 A112: CallExpr 
40:18-40:30
 A108: NameExpr inner 
40:18-40:22
defAt: A94 @ 29:9-35:15
 A111: Nodes<Expr> 
40:23-40:30
 A109: NameExpr g1 
40:24-40:25
defAt: A7 @ 5:1-5:10
 A110: NameExpr g2 
40:28-40:29
defAt: A9 @ 6:1-6:10
 A195: LetExpr 
41:9-65:11
 A192: Nodes<Defn> 
42:13-43:22
 A115: VarDefn shadow 
42:13-42:26
 A114: NameType b 
42:26-42:26
defAt: A5 @ 3:1-3:12
 A117: VarDefn g1 
43:13-43:22
 A116: NameType b 
43:22-43:22
defAt: A5 @ 3:1-3:12
 A194: Exprs 
45:13-64:15
 A193: Nodes<Expr> 
45:13-64:15
 A123: AsgnExpr 
45:13-45:35
 A118: NameExpr shadow 
45:13-45:18
defAt: A115 @ 42:13-42:26
 A122: CallExpr 
45:22-45:35
 A119: NameExpr helper 
45:22-45:27
defAt: A26 @ 10:1-11:10
 A121: Nodes<Expr> 
45:28-45:35
 A120: NameExpr local1 
45:29-45:34
defAt: A67 @ 26:9-26:22
 A130: AsgnExpr 
46:13-46:41
 A124: NameExpr g1 
46:13-46:14
defAt: A117 @ 43:13-43:22
 A129: BinExpr OR 
46:18-46:41
 A127: BinExpr AND 
46:18-46:32
 A125: NameExpr shadow 
46:18-46:23
defAt: A115 @ 42:13-42:26
 A126: AtomExpr true 
46:29-46:32
 A128: AtomExpr false 
46:37-46:41
 A191: LetExpr 
47:13-64:15
 A188: Nodes<Defn> 
48:17-48:28
 A132: VarDefn deep 
48:17-48:28
 A131: NameType i 
48:28-48:28
defAt: A1 @ 1:1-1:11
 A190: Exprs 
50:17-63:20
 A189: Nodes<Expr> 
50:17-63:20
 A139: AsgnExpr 
50:17-50:42
 A133: NameExpr deep 
50:17-50:20
defAt: A132 @ 48:17-48:28
 A138: CallExpr 
50:24-50:42
 A134: NameExpr ext 
50:24-50:26
defAt: A16 @ 8:1-8:26
 A137: Nodes<Expr> 
50:27-50:42
 A135: NameExpr local1 
50:28-50:33
defAt: A67 @ 26:9-26:22
 A136: NameExpr local2 
50:36-50:41
defAt: A69 @ 27:9-27:22
 A158: IfThenElseExpr 
51:17-55:19
 A143: CallExpr 
51:20-51:31
 A140: NameExpr helper 
51:20-51:25
defAt: A26 @ 10:1-11:10
 A142: Nodes<Expr> 
51:26-51:31
 A141: NameExpr deep 
51:27-51:30
defAt: A132 @ 48:17-48:28
 A155: Exprs 
52:21-52:33
 A154: Nodes<Expr> 
52:21-52:33
 A148: AsgnExpr 
52:21-52:33
 A144: NameExpr g2 
52:21-52:22
defAt: A9 @ 6:1-6:10
 A147: BinExpr ADD 
52:26-52:33
 A145: NameExpr deep 
52:26-52:29
defAt: A132 @ 48:17-48:28
 A146: AtomExpr 1 
52:33-52:33
 A157: Exprs 
54:21-54:33
 A156: Nodes<Expr> 
54:21-54:33
 A153: AsgnExpr 
54:21-54:33
 A149: NameExpr g2 
54:21-54:22
defAt: A9 @ 6:1-6:10
 A152: BinExpr SUB 
54:26-54:33
 A150: NameExpr deep 
54:26-54:29
defAt: A132 @ 48:17-48:28
 A151: AtomExpr 1 
54:33-54:33
 A186: WhileExpr 
56:17-62:19
 A161: BinExpr GTH 
56:23-56:28
 A159: NameExpr g2 
56:23-56:24
defAt: A9 @ 6:1-6:10
 A160: AtomExpr 0 
56:28-56:28
 A185: Exprs 
57:21-61:23
 A184: Nodes<Expr> 
57:21-61:23
 A183: IfThenElseExpr 
57:21-61:23
 A166: BinExpr EQU 
57:24-57:34
 A164: BinExpr MOD 
57:24-57:29
 A162: NameExpr g2 
57:24-57:25
defAt: A9 @ 6:1-6:10
 A163: AtomExpr 2 
57:29-57:29
 A165: AtomExpr 0 
57:34-57:34
 A180: Exprs 
58:25-58:35
 A179: Nodes<Expr> 
58:25-58:35
 A171: AsgnExpr 
58:25-58:35
 A167: NameExpr g2 
58:25-58:26
defAt: A9 @ 6:1-6:10
 A170: BinExpr SUB 
58:30-58:35
 A168: NameExpr g2 
58:30-58:31
defAt: A9 @ 6:1-6:10
 A169: AtomExpr 1 
58:35-58:35
 A182: Exprs 
60:25-60:39
 A181: Nodes<Expr> 
60:25-60:39
 A178: AsgnExpr 
60:25-60:39
 A172: NameExpr g2 
60:25-60:26
defAt: A9 @ 6:1-6:10
 A177: BinExpr SUB 
60:30-60:39
 A175: BinExpr MUL 
60:30-60:35
 A173: NameExpr g2 
60:30-60:31
defAt: A9 @ 6:1-6:10
 A174: AtomExpr 2 
60:35-60:35
 A176: AtomExpr 3 
60:39-60:39
 A187: NameExpr deep 
63:17-63:20
defAt: A132 @ 48:17-48:28