struct tagList { void *val; List *next; List *prev; } List;