
  -spec hd(List) -> term() when List :: [term(), ...].

  Returns the head of List, that is, the first element, for
  example:

    > hd([1,2,3,4,5]).
    1

  Allowed in guard tests.

  Failure: badarg if List is the empty list [].
