I wrote: > [Discussion about \IfNoValue] I think there are two sensible ways to approach things: 1) Insist that \NoValue can only be used directly inside xparse functions, document this and provide an example of how to pass data along (using \q_no_value, as in my example). In this case, \IfNoValue does not need to be expandable. 2) Document that \NoValue may be passed along, and as a result ensure that \IfNoValue is expandable. The current situation seems to fall between the two (\IfNoValue is not expandable *but* there is no guidance on any restriction). As Lars says, there are cases where an expandable \NoValue would be very useful (although I wonder if my suggestion of effectively converting \NoValue into \q_no_value at the xparse stage "fits" better the separation of argument parsing from coding). -- Joseph Wright