Right now you have to write:
ren::Block {1, red::Block{2, 3}, 4}
Using a std::initializer_list, this could default to the behavior of assuming "brace means block". Then you could write:
ren::Block {1, {2, 3}, 4}
It's a little bit questionable because { isn't really a [, and there's not necessarily any real reason why a BLOCK! should get this special treatment over PAREN! or PATH!. But it might be cute.