Lists
     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
      size independently.
      
      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
      and BOOST_PP_LIST_REST.  
    Primitives