Note that
the use of the name `hd' (or head) for the element value in a list cell,
the name `tl' (or tail) for the pointer to the rest of the list and
the name `cons()' for the cell constructor function,
is purely traditional and inherited from the programming language `Lisp'.
Some prefer to use other names such as `contents', `next' and `cell' etc.