source 
 prog 
 defn 
 FUN 
 1:1-1:3 
 fun 
 ID 
 1:5-1:5 
 f 
 LBRACKET 
 1:6-1:6 
 ( 
 RBRACKET 
 1:7-1:7 
 ) 
 COLON 
 1:9-1:9 
 : 
 type 
 VOID 
 1:11-1:14 
 void 
 EQUALS 
 1:16-1:16 
 = 
 expr 
 LET 
 2:9-2:11 
 let 
 defn 
 FUN 
 3:17-3:19 
 fun 
 ID 
 3:21-3:21 
 g 
 LBRACKET 
 3:22-3:22 
 ( 
 RBRACKET 
 3:23-3:23 
 ) 
 COLON 
 3:25-3:25 
 : 
 type 
 VOID 
 3:27-3:30 
 void 
 EQUALS 
 3:32-3:32 
 = 
 expr 
 expr 
 ID 
 4:25-4:25 
 h 
 LBRACKET 
 4:26-4:26 
 ( 
 RBRACKET 
 4:27-4:27 
 ) 
 COMMA 
 4:28-4:28 
 , 
 expr 
 LET 
 5:25-5:27 
 let 
 defn 
 FUN 
 6:33-6:35 
 fun 
 ID 
 6:37-6:37 
 f 
 LBRACKET 
 6:38-6:38 
 ( 
 RBRACKET 
 6:39-6:39 
 ) 
 COLON 
 6:41-6:41 
 : 
 type 
 VOID 
 6:43-6:46 
 void 
 EQUALS 
 6:48-6:48 
 = 
 expr 
 expr 
 ID 
 6:50-6:50 
 g 
 LBRACKET 
 6:51-6:51 
 ( 
 RBRACKET 
 6:52-6:52 
 ) 
 defn 
 FUN 
 7:33-7:35 
 fun 
 ID 
 7:37-7:37 
 g 
 LBRACKET 
 7:38-7:38 
 ( 
 RBRACKET 
 7:39-7:39 
 ) 
 COLON 
 7:41-7:41 
 : 
 type 
 VOID 
 7:43-7:46 
 void 
 defn 
 FUN 
 8:33-8:35 
 fun 
 ID 
 8:37-8:37 
 x 
 LBRACKET 
 8:38-8:38 
 ( 
 RBRACKET 
 8:39-8:39 
 ) 
 COLON 
 8:41-8:41 
 : 
 type 
 VOID 
 8:43-8:46 
 void 
 IN 
 9:25-9:26 
 in 
 expr 
 expr 
 ID 
 10:33-10:33 
 f 
 LBRACKET 
 10:34-10:34 
 ( 
 RBRACKET 
 10:35-10:35 
 ) 
 COMMA 
 10:36-10:36 
 , 
 expr 
 expr 
 ID 
 11:33-11:33 
 g 
 LBRACKET 
 11:34-11:34 
 ( 
 RBRACKET 
 11:35-11:35 
 ) 
 COMMA 
 11:36-11:36 
 , 
 expr 
 expr 
 ID 
 12:33-12:33 
 h 
 LBRACKET 
 12:34-12:34 
 ( 
 RBRACKET 
 12:35-12:35 
 ) 
 END 
 13:25-13:27 
 end 
 defn 
 FUN 
 14:17-14:19 
 fun 
 ID 
 14:21-14:21 
 h 
 LBRACKET 
 14:22-14:22 
 ( 
 RBRACKET 
 14:23-14:23 
 ) 
 COLON 
 14:25-14:25 
 : 
 type 
 VOID 
 14:27-14:30 
 void 
 IN 
 15:9-15:10 
 in 
 expr 
 ID 
 16:17-16:17 
 f 
 COMMA 
 16:18-16:18 
 , 
 expr 
 ID 
 16:20-16:20 
 g 
 COMMA 
 16:21-16:21 
 , 
 expr 
 ID 
 16:23-16:23 
 h 
 END 
 17:9-17:11 
 end 
 EOF