head and tail need to throw exceptions when argument is Nil