Perhaps the compiler could track situations like var x x = x & y Run
where T of y is T of x[T] or y is a view of a container [T] and replace the second line with appropriate `x.add(y)` or `x.extend(y)`, but do we really want this complex behaviour which encourages ambiguous expressions in the code? I don't think so.