Consider the example below, where a macro checks if, on a given date, the result of the [fo] and [fu] tokens are the same (note that the reference to each holidays list is made on a separate line).
sOholidays = EvalToken(n_TokenDate, '[fo]')
sUholidays = EvalToken(n_TokenDate, '[fu]')
bRESULT = (sOholidays == sUholidays)
If there are no tokens in the GridTemplate which refer to o-holidays and u-holidays then Q++Studio will not know that you need to specify o-holidays and u-holidays and will not be to issue a design-time message warning you that you have not defined them.
By using the INCLUDE_HOLIDAYS_LIST directive, you are telling Q++Studio that this macro will always require o-holidays and u-holidays, and therefore Q++Studio will be able to warn any user in that uses this macro.
The above example was one where the reference to a holidays list was explicit (the above macro always uses o-holidays and u-holidays). There are cases where the holidays list used cannot be determined from the macro itself, because the holidays list used is one of the input variables of the macro.
bRESULT = HolidayOfListOnDate(sHolList, n_TokenDate)