anchor.diff:      };
     }
   
  +  List evalList(List<Expression> list, self) {
  +    int length = list.length;
  +    List result = new List(length);
  +    for (int i = 0; i < length; i++) {
  +      result[i] = list[i].eval(self);
  +    }
  +    return result;
  +  }
  +
     _op(opKey) => OPERATORS[opKey];
   
     Expression ternaryFn(Expression cond, Expression _true, Expression _false) =>
  
positive.code:         return value;
        });
  
    Expression functionCall(fn, fnName, argsFn, evalError) =>
        new Expression((self){
          List args = [];
          for ( var i = 0; i < argsFn.length; i++) {
            args.add(argsFn[i].eval(self));
          }
          var userFn = safeFunctionCall(fn.eval(self), fnName, evalError);
  
          return relaxFnApply(userFn, args);
        });
  
    Expression arrayDeclaration(elementFns) =>
        new Expression((self){
  
negative.code:     var getterFn = getter(field);
      return new Expression(
          (self) => getterFn(object.eval(self)),
          (self, value) => setterFn(object.eval(self), value))
              ..fieldHolder = object
              ..fieldName = field;
    }
  
    Expression object(keyValues) =>
  