anchor.diff:    cancel
   }
   
  -/// TapGesture represents a full gesture resulting from a single tap
  -/// sequence. Tap gestures are passive, meaning that they will not
  -/// pre-empt any other arena member in play.
  +/// TapGesture represents a full gesture resulting from a single tap sequence,
  +/// as part of a [MultiTapGestureRecognizer]. Tap gestures are passive, meaning
  +/// that they will not preempt any other arena member in play.
   class _TapGesture extends _TapTracker {
   
  -  _TapGesture({ this.gestureRecognizer, PointerInputEvent event })
  -      : super(event: event) {
  -    entry = GestureArena.instance.add(event.pointer, gestureRecognizer);
  +  _TapGesture({
  +    MultiTapGestureRecognizer gestureRecognizer,
  +    PointerInputEvent event
  +  }) : gestureRecognizer = gestureRecognizer,
  +       super(event: event, entry: GestureArena.instance.add(event.pointer, gestureRecognizer)) {
       startTrackingPointer(gestureRecognizer.router, handleEvent);
     }
   
     final MultiTapGestureRecognizer gestureRecognizer;
   
     bool _wonArena = false;
  -  ui.Point _finalPosition;
  +  Point _finalPosition;
   
     void handleEvent(PointerInputEvent event) {
       assert(event.pointer == pointer);
  
positive.code: 
    _TapTracker({ PointerInputEvent event, this.entry })
      : pointer = event.pointer,
        _initialPosition = event.position,
        _isTrackingPointer = false {
      assert(event.type == 'pointerdown');
    }
  
    final int pointer;
    GestureArenaEntry entry;
    ui.Point _initialPosition;
    bool _isTrackingPointer;
  
    void startTrackingPointer(PointerRouter router, PointerRoute route) {
      if (!_isTrackingPointer) {
  
negative.code: // found in the LICENSE file.
  
  import 'dart:async';
  import 'dart:ui' show Point, Offset;
  
  import 'arena.dart';
  import 'constants.dart';
  