source 
 prog 
 defn 
 FUN 
 2:1-2:3 
 fun 
 ID 
 2:5-2:5 
 h 
 LBRACKET 
 2:6-2:6 
 ( 
 RBRACKET 
 2:7-2:7 
 ) 
 COLON 
 2:8-2:8 
 : 
 type 
 VOID 
 2:10-2:13 
 void 
 EQUALS 
 2:15-2:15 
 = 
 expr 
 NONE 
 2:17-2:20 
 none 
 defn 
 FUN 
 5:1-5:3 
 fun 
 ID 
 5:5-5:5 
 f 
 LBRACKET 
 5:6-5:6 
 ( 
 RBRACKET 
 5:7-5:7 
 ) 
 COLON 
 5:8-5:8 
 : 
 type 
 VOID 
 5:10-5:13 
 void 
 EQUALS 
 5:15-5:15 
 = 
 expr 
 expr 
 ID 
 5:17-5:17 
 h 
 LBRACKET 
 5:18-5:18 
 ( 
 RBRACKET 
 5:19-5:19 
 ) 
 defn 
 FUN 
 9:1-9:3 
 fun 
 ID 
 9:5-9:8 
 main 
 LBRACKET 
 9:9-9:9 
 ( 
 RBRACKET 
 9:10-9:10 
 ) 
 COLON 
 9:11-9:11 
 : 
 type 
 VOID 
 9:12-9:15 
 void 
 EQUALS 
 9:17-9:17 
 = 
 expr 
 expr 
 ID 
 10:5-10:5 
 f 
 LBRACKET 
 10:6-10:6 
 ( 
 RBRACKET 
 10:7-10:7 
 ) 
 EOF