# region chaos
# define cat(a, b) ::chaos::primitive_cat(a, b)
# define primitive_cat(a, b) a ## b
# endregion
//chaos::cat(1, 2) // okay
# region chaos
# define split(i, im) \
::chaos::primitive_cat( \
::chaos::split_, i \
)(im) \
/**/
# define split_0(a, b) a
# define split_1(a, b) b
# endregion
#define intermediate x, y
#pragma wave trace(enable)
chaos::split(0, intermediate)