Sometimes we don't want to auto expand expression ExpressionLists. That can be used to pass several lists into templates without breaking their boundaries.
Explicit expand
Pretty printing
Example
template Test(alias T1, alias T2) { static assert([T1.expand] == [1, 2]); static assert([T2.expand] == [3, 4]); enum Test = true; } static assert(Test!(StrictExpressionList!(1, 2), StrictExpressionList!(3, 4)));
See Implementation
Sometimes we don't want to auto expand expression ExpressionLists. That can be used to pass several lists into templates without breaking their boundaries.