anchor.diff:      for (int i = 0; i < node.expressions.length; ++i) {
         entries[i] = _evaluateSubexpression(node.expressions[i]);
       }
  +    if (hasUnevaluatedChild(node)) {
  +      final expressions = new List<Expression>(node.expressions.length);
  +      for (int i = 0; i < node.expressions.length; ++i) {
  +        expressions[i] = unique(entries[i].asExpression());
  +      }
  +      return unevaluated(
  +          node,
  +          new ListLiteral(expressions,
  +              typeArgument: node.typeArgument, isConst: true));
  +    }
       final DartType typeArgument = evaluateDartType(node, node.typeArgument);
       return canonicalize(new ListConstant(typeArgument, entries));
     }
  
positive.code:       }
        entries[i] = new ConstantMapEntry(key, value);
      }
      final DartType keyType = evaluateDartType(node, node.keyType);
      final DartType valueType = evaluateDartType(node, node.valueType);
      return canonicalize(new MapConstant(keyType, valueType, entries));
  
negative.code: 
  import '../ast.dart';
  import '../class_hierarchy.dart';
  import '../clone.dart';
  import '../core_types.dart';
  import '../kernel.dart';
  import '../type_algebra.dart';
  