this is because sometimes `None` or `?` dimensions are propagated in unexpected ways, especially when we have reshapes (with -1)!