| Who Cites for hdtl? | |
| for_hdtl |  as. g(h;t) == reduce(f;k;mapcons(  h,t. g(h;t);as)) | 
|  A,B,C:Type, f:(B   C   C), k:C, as:A List, g:(A   (A List)   B). Thm* (ForHdTl{A,f,k} h::t  as. g(h,t))  C | |
| mapcons |  nil ; a.as'  f(a,as').mapcons(f;as') Def (recursive) | 
|  A,B:Type, f:(A   (A List)   B), l:A List. mapcons(f;l)  B List | |
| reduce |  k ; a.as'  f(a,reduce(f;k;as')) Def (recursive) | 
|  A,B:Type, f:(A   B   B), k:B, as:A List. reduce(f;k;as)  B | 
| Syntax: |  as. g(h;t) | has structure: | 
About:
|  |  |  |  |  | 
|  |  |  |  |  |  | 
|  |