anchor.diff:  }
   
   class ListNode extends Node {
  -
  +  
     static const int LIST_NIL = 0 << Node.KIND_BITS;
     static const int LIST_CONS = 1 << Node.KIND_BITS;
     static const int LIST_MASK = 1 << Node.KIND_BITS;
  
positive.code:   final double floatValue; // Float
    
    const NumberNode.int(this.intValue)
        : super(NUMBER_INT | Node.KIND_NUMBER), floatValue = 0.0;
  
    const NumberNode.float(this.floatValue)
        : super(NUMBER_FLOAT | Node.KIND_NUMBER), intValue = 0;
    
    bool operator ==(Object node) {
      if (!(node is NumberNode)) {
  
negative.code:     } else if (isFloat()) {
        return that.isFloat() && getFloatValue() == that.getFloatValue();
      }
      throw new Exception("neither int nor float");
    }
    
    bool isInt() { return (tag & NUMBER_MASK) == NUMBER_INT; }
  