Generic doubly linked list