anchor.diff:  
     // TODO(floitsch): the types of the `_ZoneFunction`s should have a type for
     // all fields.
  -  _RunNullaryZoneFunction get _run;
  -  _RunUnaryZoneFunction get _runUnary;
  -  _RunBinaryZoneFunction get _runBinary;
  -  _RegisterNullaryZoneFunction get _registerCallback;
  -  _RegisterUnaryZoneFunction get _registerUnaryCallback;
  -  _RegisterBinaryZoneFunction get _registerBinaryCallback;
  +  _ZoneFunction<RunHandler> get _run;
  +  _ZoneFunction<RunUnaryHandler> get _runUnary;
  +  _ZoneFunction<RunBinaryHandler> get _runBinary;
  +  _ZoneFunction<RegisterCallbackHandler> get _registerCallback;
  +  _ZoneFunction<RegisterUnaryCallbackHandler> get _registerUnaryCallback;
  +  _ZoneFunction<RegisterBinaryCallbackHandler> get _registerBinaryCallback;
     _ZoneFunction<ErrorCallbackHandler> get _errorCallback;
     _ZoneFunction<ScheduleMicrotaskHandler> get _scheduleMicrotask;
     _ZoneFunction<CreateTimerHandler> get _createTimer;
  
positive.code:   final _Zone zone;
    final T function;
    const _ZoneFunction(this.zone, this.function);
  }
  
  class _RunNullaryZoneFunction {
    final _Zone zone;
    final RunHandler function;
    const _RunNullaryZoneFunction(this.zone, this.function);
  }
  
  class _RunUnaryZoneFunction {
    final _Zone zone;
    final RunUnaryHandler function;
    const _RunUnaryZoneFunction(this.zone, this.function);
  }
  
  class _RunBinaryZoneFunction {
    final _Zone zone;
    final RunBinaryHandler function;
    const _RunBinaryZoneFunction(this.zone, this.function);
  }
  
  class _RegisterNullaryZoneFunction {
    final _Zone zone;
    final RegisterCallbackHandler function;
    const _RegisterNullaryZoneFunction(this.zone, this.function);
  }
  
  class _RegisterUnaryZoneFunction {
    final _Zone zone;
    final RegisterUnaryCallbackHandler function;
    const _RegisterUnaryZoneFunction(this.zone, this.function);
  }
  
  class _RegisterBinaryZoneFunction {
    final _Zone zone;
    final RegisterBinaryCallbackHandler function;
    const _RegisterBinaryZoneFunction(this.zone, this.function);
  }
  
  /// A parameter object with custom zone function handlers for [Zone.fork].
  
negative.code: class _RootZone extends _Zone {
    const _RootZone();
  
    _ZoneFunction<RunHandler> get _run =>
        const _ZoneFunction<RunHandler>(_rootZone, _rootRun);
    _ZoneFunction<RunUnaryHandler> get _runUnary =>
        const _ZoneFunction<RunUnaryHandler>(_rootZone, _rootRunUnary);
    _ZoneFunction<RunBinaryHandler> get _runBinary =>
        const _ZoneFunction<RunBinaryHandler>(_rootZone, _rootRunBinary);
    _ZoneFunction<RegisterCallbackHandler> get _registerCallback =>
        const _ZoneFunction<RegisterCallbackHandler>(
            _rootZone, _rootRegisterCallback);
    _ZoneFunction<RegisterUnaryCallbackHandler> get _registerUnaryCallback =>
        const _ZoneFunction<RegisterUnaryCallbackHandler>(
            _rootZone, _rootRegisterUnaryCallback);
    _ZoneFunction<RegisterBinaryCallbackHandler> get _registerBinaryCallback =>
        const _ZoneFunction<RegisterBinaryCallbackHandler>(
            _rootZone, _rootRegisterBinaryCallback);
    _ZoneFunction<ErrorCallbackHandler> get _errorCallback =>
        const _ZoneFunction<ErrorCallbackHandler>(_rootZone, _rootErrorCallback);
    _ZoneFunction<ScheduleMicrotaskHandler> get _scheduleMicrotask =>
  