anchor.diff:    void emitFunctionBody() {
       fuzzer.emitBraceWrapped(() {
         assert(fuzzer.localVars.isEmpty);
  +      if (recursionAllowed) {
  +        emitRecursionBaseCase();
  +      }
         if (fuzzer.emitStatements(0)) {
           fuzzer.emitReturn();
         }
  
positive.code: 
    // Emit expression.
    void emitExpr(int depth, DartType tp,
        {RhsFilter rhsFilter,
        bool includeSemicolon = false,
        // Setting terminal to true forces the emission of a terminal.
        bool terminal = false}) {
      final resetExprStmt = processExprOpen(tp);
      // Continuing nested expressions becomes less likely as the depth grows.
      if (terminal || (choose(depth + 1) > exprDepth)) {
        emitTerminal(depth, tp, rhsFilter: rhsFilter);
      } else {
        // Possibly nested expression.
  
negative.code:   }
  
    // Emit a return statement.
    bool emitReturn() {
      List<DartType> proto = getCurrentProto();
      if (proto == null) {
        emitLn('return;');
      } else {
        emitLn('return ', newline: false);
        emitExpr(0, proto[0], includeSemicolon: true);
      }
      return false;
    }
  