# Howcome I can't use assign operator on multiple bits?

For the below image, howcome assign out = a&~sel + b&sel only outputs one instead of the ref solution below? Is there any way to do this problem with assign only?

assign foo = in1 & {WIDTH{sel1}} | in0 & {WIDTH{sel0}} ;

Could that be because the sel is just one bit wide?
If you wanted to use that, you'd probably have to extend the sel to the same width as the other inputs.