Before I forget, it is important to note that the structure consists of two parts, the value with a list of associated sub-values, along with the list. struct R { int value; d_list!R Rlist; } struct d_list( T ) { struct node { T payload; node* pred; node* succ; } node* head; node* tail; } --rt