source 
 prog 
 defn 
 TYP 
 2:1-2:3 
 typ 
 ID 
 2:5-2:8 
 list 
 EQUALS 
 2:10-2:10 
 = 
 type 
 LBRACKET 
 2:12-2:12 
 ( 
 ID 
 2:13-2:17 
 first 
 COLON 
 2:18-2:18 
 : 
 type 
 INT 
 2:20-2:22 
 int 
 COMMA 
 2:23-2:23 
 , 
 ID 
 2:25-2:28 
 rest 
 COLON 
 2:29-2:29 
 : 
 type 
 ID 
 2:30-2:33 
 list 
 RBRACKET 
 2:34-2:34 
 ) 
 EOF