source 
 prog 
 defn 
 TYP 
 2:1-2:3 
 typ 
 ID 
 2:5-2:6 
 t1 
 EQUALS 
 2:8-2:8 
 = 
 type 
 LBRACKET 
 2:10-2:10 
 ( 
 ID 
 2:11-2:11 
 i 
 COLON 
 2:12-2:12 
 : 
 type 
 INT 
 2:13-2:15 
 int 
 COMMA 
 2:16-2:16 
 , 
 ID 
 2:18-2:18 
 n 
 COLON 
 2:19-2:19 
 : 
 type 
 HAT 
 2:21-2:21 
 ^ 
 type 
 ID 
 2:22-2:23 
 t2 
 RBRACKET 
 2:24-2:24 
 ) 
 defn 
 TYP 
 3:1-3:3 
 typ 
 ID 
 3:5-3:6 
 t2 
 EQUALS 
 3:8-3:8 
 = 
 type 
 LBRACKET 
 3:10-3:10 
 ( 
 ID 
 3:11-3:11 
 j 
 COLON 
 3:12-3:12 
 : 
 type 
 INT 
 3:13-3:15 
 int 
 COMMA 
 3:16-3:16 
 , 
 ID 
 3:18-3:18 
 n 
 COLON 
 3:19-3:19 
 : 
 type 
 HAT 
 3:21-3:21 
 ^ 
 type 
 ID 
 3:22-3:23 
 t1 
 RBRACKET 
 3:24-3:24 
 ) 
 EOF