source 
 prog 
 defn 
 FUN 
 1:1-1:3 
 fun 
 ID 
 1:5-1:5 
 f 
 LBRACKET 
 1:6-1:6 
 ( 
 ID 
 1:7-1:7 
 a 
 COLON 
 1:9-1:9 
 : 
 type 
 INT 
 1:11-1:13 
 int 
 COMMA 
 1:14-1:14 
 , 
 ID 
 1:16-1:16 
 b 
 COLON 
 1:18-1:18 
 : 
 type 
 INT 
 1:20-1:22 
 int 
 COMMA 
 1:23-1:23 
 , 
 ID 
 1:25-1:25 
 c 
 COLON 
 1:27-1:27 
 : 
 type 
 INT 
 1:29-1:31 
 int 
 RBRACKET 
 1:32-1:32 
 ) 
 COLON 
 1:34-1:34 
 : 
 type 
 BOOL 
 1:36-1:39 
 bool 
 EQUALS 
 1:41-1:41 
 = 
 expr 
 expr 
 expr 
 expr 
 expr 
 NOT 
 1:43-1:45 
 not 
 expr 
 ID 
 1:47-1:47 
 a 
 PLUS 
 1:48-1:48 
 + 
 expr 
 expr 
 ID 
 1:49-1:49 
 b 
 ASTERISK 
 1:50-1:50 
 * 
 expr 
 ID 
 1:51-1:51 
 b 
 PLUS 
 1:52-1:52 
 + 
 expr 
 ID 
 1:53-1:53 
 a 
 MINUS 
 1:54-1:54 
 - 
 expr 
 expr 
 ID 
 1:55-1:55 
 c 
 PERCENT 
 1:57-1:57 
 % 
 expr 
 NUM 
 1:59-1:60 
 10 
 AS 
 1:62-1:63 
 as 
 type 
 INT 
 1:65-1:67 
 int 
 EOF