code: func pushNode(list []*node, n *node, max int) ([]*node, *node) {
  	if len(list) < max {
  		list = append(list, nil)
  	}
  	removed := list[len(list)-1]
  	copy(list[1:], list)
  	list[0] = n
  	return list, removed
  }
docs: // pushNode adds n to the front of list, keeping at most max items.