function insert_after(node, value): # singly linked

   new_node = Node(value)
   new_node.next = node.next
   node.next = new_node     # O(1) once you hold the node

 function insert_after_doubly(node, value): # doubly linked
   new_node = Node(value)

   new_node.next = node.next
   new_node.prev = node
   if node.next is not null:
      node.next.prev = new_node
   node.next = new_node     # can also walk backward via .prev
