anchor.diff:  
     Configuration visitStringConcatenation(
         StringConcatenation node, ExpressionConfiguration config) {
  -    var cont = new StringConcatenationContinuation(
  -        node.expressions, config.environment, config.continuation);
  -    return new ExpressionConfiguration(
  -        node.expressions.first, config.environment, cont);
  +    var cont = new StringConcatenationContinuation(config.continuation);
  +    var expressions = node.expressions
  +        .map((Expression e) => new PositionalExpression(e))
  +        .toList();
  +    return new ExpressionListConfiguration(
  +        expressions, config.environment, cont);
     }
   
     // Evaluation of BasicLiterals.
  
positive.code:   Value get value;
  }
  
  class PositionalArgumentValue extends InterpreterValue {
    final Value value;
  
    PositionalArgumentValue(this.value);
  }
  
  class NamedArgumentValue extends InterpreterValue {
    final String name;
    final Value value;
  
    NamedArgumentValue(this.name, this.value);
  }
  
  class LocalInitializerValue extends InterpreterValue {
  
negative.code:   static Environment createEnvironment(
        FunctionNode function, List<InterpreterValue> args) {
      Environment newEnv = new Environment.empty();
      List<PositionalValue> positional = args.reversed
          .where((InterpreterValue av) => av is PositionalValue)
          .toList();
  
      // Add positional parameters.
  