source 
 prog 
 defn 
 VAR 
 1:1-1:3 
 var 
 ID 
 1:5-1:7 
 rav 
 COLON 
 1:9-1:9 
 : 
 type 
 LCURLY 
 1:11-1:11 
 { 
 ID 
 1:13-1:13 
 a 
 COLON 
 1:14-1:14 
 : 
 type 
 LCURLY 
 1:16-1:16 
 { 
 ID 
 1:17-1:17 
 a 
 COLON 
 1:18-1:18 
 : 
 type 
 INT 
 1:20-1:22 
 int 
 RCURLY 
 1:23-1:23 
 } 
 COMMA 
 1:24-1:24 
 , 
 ID 
 1:26-1:26 
 b 
 COLON 
 1:27-1:27 
 : 
 type 
 LBRACKET 
 1:29-1:29 
 ( 
 COLON 
 1:30-1:30 
 : 
 type 
 LCURLY 
 1:31-1:31 
 { 
 ID 
 1:32-1:32 
 a 
 COLON 
 1:33-1:33 
 : 
 type 
 LBRACKET 
 1:35-1:35 
 ( 
 ID 
 1:37-1:37 
 g 
 COLON 
 1:39-1:39 
 : 
 type 
 INT 
 1:41-1:43 
 int 
 RBRACKET 
 1:44-1:44 
 ) 
 RCURLY 
 1:45-1:45 
 } 
 COLON 
 1:46-1:46 
 : 
 type 
 BOOL 
 1:47-1:50 
 bool 
 RBRACKET 
 1:51-1:51 
 ) 
 RCURLY 
 1:52-1:52 
 } 
 EOF