anchor.diff:      assert(constant != null);
     }
   
  -  DartType getStaticType(TypeEnvironment types) =>
  -      throw 'ConstantExpression.staticType() is unimplemented';
  +  DartType getStaticType(TypeEnvironment types) => constant.getType(types);
   
     accept(ExpressionVisitor v) => v.visitConstantExpression(this);
     accept1(ExpressionVisitor1 v, arg) => v.visitConstantExpression(this, arg);
  
positive.code:   visitChildren(Visitor v) {}
    accept(ConstantVisitor v) => v.visitIntConstant(this);
    acceptReference(Visitor v) => v.visitIntConstantReference(this);
  }
  
  class DoubleConstant extends PrimitiveConstant<double> {
  
negative.code:   bool operator ==(Object other) =>
        other is DoubleConstant &&
        (other.value == value || identical(value, other.value) /* For NaN */);
  
    DartType getType(TypeEnvironment types) => types.doubleType;
  }
  
  class StringConstant extends PrimitiveConstant<String> {
  