anchor.diff:  
     // Emit statements. Returns true if code may fall-through.
     bool emitStatements(int depth) {
  -    int s = 1 + rand.nextInt(stmtLength);
  +    int s = 1 + rand.nextInt(numStatements);
       for (int i = 0; i < s; i++) {
         if (!emitStatement(depth)) {
           return false; // rest would be dead code
  
positive.code:     }
    }
  
    List<DartType> fillTypes1({bool isFfi = false}) {
      final list = <DartType>[];
      for (int i = 0, n = 1 + rand.nextInt(4); i < n; i++) {
        if (isFfi) {
          list.add(fp ? oneOf([DartType.INT, DartType.DOUBLE]) : DartType.INT);
        } else {
  
negative.code:     // Setup the types.
      localVars = <DartType>[];
      iterVars = <String>[];
  
      globalVars = fillTypes1(limit: numGlobalVars);
      globalVars.addAll(DartType.allTypes); // always one each
      globalMethods =
          fillTypes2(limit2: numGlobalMethods, limit1: numMethodParams);
      classFields = fillTypes2(limit2: numClasses, limit1: numLocalVars);
      classMethods = fillTypes3(classFields.length,
          limit2: numClassMethods, limit1: numMethodParams);
  
      virtualClassMethods = <Map<int, List<int>>>[];
      classParents = <int>[];
      // Setup optional ffi methods and types.
      final ffiStatus = <bool>[for (final _ in globalMethods) false];
      if (ffi) {
        List<List<DartType>> globalMethodsFfi = fillTypes2(
            limit2: numGlobalMethods, limit1: numMethodParams, isFfi: true);
        for (var m in globalMethodsFfi) {
          globalMethods.add(m);
          ffiStatus.add(true);
  