define VAR( w0?, w1?, a!, r?, v0!, v1! ) = |[ x0, x1, y0, y1 :: pref *[ (w0?; x0 | w1?; x1); a! ] || pref *[ r?; (y0; v0! | y1; v1!) ] || pref (( *[y0] | *[y1] ); *[ x0; *[y0] | x1; *[y1] ]) ]| end