anchor.diff:      } else if (isFloat()) {
         return that.isFloat() && getFloatValue() == that.getFloatValue();
       }
  +    throw new Exception("neither int nor float");
     }
     
     bool isInt() { return (tag & NUMBER_MASK) == NUMBER_INT; }
  
positive.code: // See the License for the specific language governing permissions and
  // limitations under the License.
  
  // Node
  //   WordNode(s)
  //   NumberNode
  //     Int(i)
  //     Float(f)
  //   ListNode
  //     Cons(head, tail)
  //     Nil()
  //   Primitive  // see Primitive.dart
  //   Defn(name, arity, body)
  
  class Node {
    static const int KIND_WORD = 0;
    static const int KIND_LIST = 1;
    static const int KIND_NUMBER = 2;
  
negative.code: }
  
  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;
  