source 
 prog 
 defn 
 FUN 
 1:1-1:3 
 fun 
 ID 
 1:5-1:6 
 id 
 LBRACKET 
 1:8-1:8 
 ( 
 ID 
 1:10-1:11 
 id 
 COLON 
 1:13-1:13 
 : 
 type 
 ID 
 1:15-1:17 
 idt 
 RBRACKET 
 1:19-1:19 
 ) 
 COLON 
 1:21-1:21 
 : 
 type 
 LBRACKET 
 1:23-1:23 
 ( 
 ID 
 1:24-1:24 
 a 
 COLON 
 1:25-1:25 
 : 
 type 
 LSQUARE 
 1:26-1:26 
 [ 
 NUM 
 1:27-1:27 
 1 
 RSQUARE 
 1:28-1:28 
 ] 
 type 
 LSQUARE 
 1:29-1:29 
 [ 
 NUM 
 1:30-1:30 
 2 
 RSQUARE 
 1:31-1:31 
 ] 
 type 
 LSQUARE 
 1:32-1:32 
 [ 
 NUM 
 1:33-1:33 
 4 
 RSQUARE 
 1:34-1:34 
 ] 
 type 
 LSQUARE 
 1:35-1:35 
 [ 
 NUM 
 1:36-1:37 
 12 
 RSQUARE 
 1:38-1:38 
 ] 
 type 
 VOID 
 1:39-1:42 
 void 
 RBRACKET 
 1:43-1:43 
 ) 
 EQUALS 
 1:45-1:45 
 = 
 expr 
 ID 
 1:47-1:49 
 ide 
 COMMA 
 1:50-1:50 
 , 
 expr 
 NUM 
 1:52-1:52 
 1 
 COMMA 
 1:53-1:53 
 , 
 expr 
 TRUE 
 1:55-1:58 
 true 
 COMMA 
 1:59-1:59 
 , 
 expr 
 FALSE 
 1:61-1:65 
 false 
 COMMA 
 1:66-1:66 
 , 
 expr 
 LITCHAR 
 1:68-1:70 
 'a' 
 COMMA 
 1:71-1:71 
 , 
 expr 
 STRING 
 1:73-1:77 
 "niz" 
 COMMA 
 1:78-1:78 
 , 
 expr 
 STRING 
 1:80-1:89 
 "niz spet" 
 COMMA 
 1:90-1:90 
 , 
 expr 
 NONE 
 1:92-1:95 
 none 
 COMMA 
 1:96-1:96 
 , 
 expr 
 NIL 
 1:98-1:100 
 nil 
 EOF