source 
 prog 
 defn 
 TYP 
 1:1-1:3 
 typ 
 ID 
 1:5-1:6 
 id 
 EQUALS 
 1:8-1:8 
 = 
 type 
 CHAR 
 1:10-1:13 
 char 
 defn 
 TYP 
 2:1-2:3 
 typ 
 ID 
 2:5-2:5 
 t 
 EQUALS 
 2:7-2:7 
 = 
 type 
 LBRACKET 
 2:9-2:9 
 ( 
 type 
 LBRACKET 
 2:10-2:10 
 ( 
 type 
 LBRACKET 
 2:11-2:11 
 ( 
 type 
 ID 
 2:12-2:13 
 id 
 RBRACKET 
 2:14-2:14 
 ) 
 RBRACKET 
 2:15-2:15 
 ) 
 RBRACKET 
 2:16-2:16 
 ) 
 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:12 
 id 
 COLON 
 3:13-3:13 
 : 
 type 
 LBRACKET 
 3:15-3:15 
 ( 
 type 
 INT 
 3:16-3:18 
 int 
 RBRACKET 
 3:19-3:19 
 ) 
 RBRACKET 
 3:20-3:20 
 ) 
 defn 
 TYP 
 4:1-4:3 
 typ 
 ID 
 4:5-4:6 
 t3 
 EQUALS 
 4:8-4:8 
 = 
 type 
 LBRACKET 
 4:10-4:10 
 ( 
 type 
 LBRACKET 
 4:11-4:11 
 ( 
 type 
 LBRACKET 
 4:12-4:12 
 ( 
 type 
 LBRACKET 
 4:13-4:13 
 ( 
 type 
 LCURLY 
 4:14-4:14 
 { 
 ID 
 4:15-4:15 
 a 
 COLON 
 4:16-4:16 
 : 
 type 
 INT 
 4:18-4:20 
 int 
 RCURLY 
 4:21-4:21 
 } 
 RBRACKET 
 4:22-4:22 
 ) 
 RBRACKET 
 4:23-4:23 
 ) 
 RBRACKET 
 4:24-4:24 
 ) 
 RBRACKET 
 4:25-4:25 
 ) 
 EOF