| 
| #define  | BOOST_PP_LIST_FOR_EACH_I(macro, data, list)   BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_I(macro, data, list)   BOOST_PP_FOR((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_P(r, x)   BOOST_PP_LIST_IS_CONS(BOOST_PP_TUPLE_ELEM(4, 2, x)) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_O(r, x)   (BOOST_PP_TUPLE_ELEM(4, 0, x), BOOST_PP_TUPLE_ELEM(4, 1, x), BOOST_PP_LIST_REST(BOOST_PP_TUPLE_ELEM(4, 2, x)), BOOST_PP_INC(BOOST_PP_TUPLE_ELEM(4, 3, x))) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_M(r, x)   BOOST_PP_LIST_FOR_EACH_I_M_I(r, BOOST_PP_TUPLE_REM_4 x) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_M_I(r, x_e)   BOOST_PP_LIST_FOR_EACH_I_M_D(r, x_e) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_M_D(r, m, d, l, i)   m(r, d, i, BOOST_PP_LIST_FIRST(l)) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_R(r, macro, data, list)   BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list) | 
|   | 
| #define  | BOOST_PP_LIST_FOR_EACH_I_R_I(r, macro, data, list)   BOOST_PP_FOR_ ## r((macro, data, list, 0), BOOST_PP_LIST_FOR_EACH_I_P, BOOST_PP_LIST_FOR_EACH_I_O, BOOST_PP_LIST_FOR_EACH_I_M) | 
|   |