source 
 prog 
 defn 
 TYP 
 1:1-1:3 
 typ 
 ID 
 1:5-1:6 
 id 
 EQUALS 
 1:8-1:8 
 = 
 type 
 HAT 
 1:10-1:10 
 ^ 
 type 
 HAT 
 1:11-1:11 
 ^ 
 type 
 HAT 
 1:12-1:12 
 ^ 
 type 
 HAT 
 1:13-1:13 
 ^ 
 type 
 HAT 
 1:14-1:14 
 ^ 
 type 
 HAT 
 1:15-1:15 
 ^ 
 type 
 HAT 
 1:16-1:16 
 ^ 
 type 
 HAT 
 1:17-1:17 
 ^ 
 type 
 HAT 
 1:18-1:18 
 ^ 
 type 
 HAT 
 1:19-1:19 
 ^ 
 type 
 HAT 
 1:20-1:20 
 ^ 
 type 
 HAT 
 1:21-1:21 
 ^ 
 type 
 HAT 
 1:22-1:22 
 ^ 
 type 
 HAT 
 1:23-1:23 
 ^ 
 type 
 VOID 
 1:24-1:27 
 void 
 defn 
 TYP 
 2:1-2:3 
 typ 
 ID 
 2:5-2:7 
 id2 
 EQUALS 
 2:9-2:9 
 = 
 type 
 LSQUARE 
 2:11-2:11 
 [ 
 NUM 
 2:12-2:12 
 1 
 RSQUARE 
 2:13-2:13 
 ] 
 type 
 LSQUARE 
 2:14-2:14 
 [ 
 NUM 
 2:15-2:15 
 2 
 RSQUARE 
 2:16-2:16 
 ] 
 type 
 LSQUARE 
 2:17-2:17 
 [ 
 NUM 
 2:18-2:18 
 4 
 RSQUARE 
 2:19-2:19 
 ] 
 type 
 BOOL 
 2:20-2:23 
 bool 
 defn 
 VAR 
 4:1-4:3 
 var 
 ID 
 4:5-4:7 
 id3 
 COLON 
 4:9-4:9 
 : 
 type 
 LBRACKET 
 4:11-4:11 
 ( 
 ID 
 4:12-4:12 
 a 
 COLON 
 4:13-4:13 
 : 
 type 
 LSQUARE 
 4:14-4:14 
 [ 
 NUM 
 4:15-4:15 
 1 
 RSQUARE 
 4:16-4:16 
 ] 
 type 
 LSQUARE 
 4:17-4:17 
 [ 
 NUM 
 4:18-4:18 
 2 
 RSQUARE 
 4:19-4:19 
 ] 
 type 
 LSQUARE 
 4:20-4:20 
 [ 
 NUM 
 4:21-4:21 
 4 
 RSQUARE 
 4:22-4:22 
 ] 
 type 
 BOOL 
 4:23-4:26 
 bool 
 COMMA 
 4:27-4:27 
 , 
 ID 
 4:29-4:29 
 b 
 COLON 
 4:30-4:30 
 : 
 type 
 HAT 
 4:32-4:32 
 ^ 
 type 
 HAT 
 4:33-4:33 
 ^ 
 type 
 HAT 
 4:34-4:34 
 ^ 
 type 
 HAT 
 4:35-4:35 
 ^ 
 type 
 HAT 
 4:36-4:36 
 ^ 
 type 
 HAT 
 4:37-4:37 
 ^ 
 type 
 HAT 
 4:38-4:38 
 ^ 
 type 
 HAT 
 4:39-4:39 
 ^ 
 type 
 HAT 
 4:40-4:40 
 ^ 
 type 
 HAT 
 4:41-4:41 
 ^ 
 type 
 HAT 
 4:42-4:42 
 ^ 
 type 
 HAT 
 4:43-4:43 
 ^ 
 type 
 HAT 
 4:44-4:44 
 ^ 
 type 
 HAT 
 4:45-4:45 
 ^ 
 type 
 VOID 
 4:46-4:49 
 void 
 COMMA 
 4:50-4:50 
 , 
 ID 
 4:52-4:52 
 c 
 COLON 
 4:53-4:53 
 : 
 type 
 ID 
 4:55-4:62 
 randomid 
 COMMA 
 4:63-4:63 
 , 
 ID 
 4:65-4:65 
 d 
 COLON 
 4:67-4:67 
 : 
 type 
 INT 
 4:69-4:71 
 int 
 COMMA 
 4:72-4:72 
 , 
 ID 
 4:74-4:74 
 e 
 COLON 
 4:76-4:76 
 : 
 type 
 BOOL 
 4:78-4:81 
 bool 
 COMMA 
 4:82-4:82 
 , 
 ID 
 4:84-4:84 
 f 
 COLON 
 4:86-4:86 
 : 
 type 
 CHAR 
 4:88-4:91 
 char 
 COMMA 
 4:92-4:92 
 , 
 ID 
 4:94-4:94 
 g 
 COLON 
 4:96-4:96 
 : 
 type 
 LCURLY 
 4:98-4:98 
 { 
 ID 
 4:100-4:100 
 h 
 COLON 
 4:102-4:102 
 : 
 type 
 HAT 
 4:104-4:104 
 ^ 
 type 
 HAT 
 4:105-4:105 
 ^ 
 type 
 INT 
 4:106-4:108 
 int 
 COMMA 
 4:109-4:109 
 , 
 ID 
 4:111-4:111 
 i 
 COLON 
 4:112-4:112 
 : 
 type 
 VOID 
 4:114-4:117 
 void 
 RCURLY 
 4:118-4:118 
 } 
 RBRACKET 
 4:120-4:120 
 ) 
 EOF