What about empty lists? You'll always have to have a first value since your constructor needs a first_node.