anchor.diff:      return Ok([hir.AssignmentExpression(getId(expression), left, right)]);
     }
   }
  +
  +hir.CandyType _unionOrUnit(List<hir.CandyType> types) {
  +  return types.isEmpty ? hir.CandyType.unit : hir.CandyType.union(types);
  +}
  
positive.code:       for (final expression in body) {
          expression.accept(visitor);
        }
        type = hir.CandyType.union(visitor.breakTypes.toList());
      }
  
      return Ok([hir.LoopExpression(getId(loop), body, type)]);
  
negative.code:     final classId = (target.identifier as hir.ReflectionIdentifier).id;
      // ignore: non_constant_identifier_names
      final class_ = getClassDeclarationHir(queryContext, classId);
  
      final typeParameters = class_.typeParameters
          .map((p) => hir.CandyType.parameter(p.name, classId))
  