A list is a simple cons-style list with a head and a
tail. The head of a list is an element, and the tail is
either another list or BOOST_PP_NIL. For example,
(a, (b, (c, BOOST_PP_NIL)))
...is a list of 3 elements--a, b, and c.
This allows macro parameters to be variable in size and allows data
states to change size without the user explicitly keeping track of the
A list can be empty and therefore have a size of 0. An empty list is
represented by the notation BOOST_PP_NIL.
Elements of a list can be extracted with BOOST_PP_LIST_FIRST