struct _List { int car; struct _List* cdr; }; typedef struct _List* List; List cons(int car, List cdr) { List ret = (List)malloc(sizeof(struct _List)); ret->car = car; ret->cdr = cdr; return ret; }