anchor.diff:  // for details. All rights reserved. Use of this source code is governed by a
   // BSD-style license that can be found in the LICENSE file.
   
  -/// Full sample that shows a custom RouteInformationParser and RouterDelegate
  -/// parsing named routes and declaratively building the stack of pages for the
  -/// [Navigator].
   import 'package:flutter/material.dart';
  -
  -final List<Book> books = [
  -  Book('Stranger in a Strange Land', 'Robert A. Heinlein'),
  -  Book('Foundation', 'Isaac Asimov'),
  -  Book('Fahrenheit 451', 'Ray Bradbury'),
  -];
   
   void main() {
     runApp(BooksApp());
  
positive.code:     if (idx == null) {
        return null;
      }
      return books[idx];
    }
  
    set selectedBook(Book? book) {
      if (book == null) {
        _selectedBookId = null;
        notifyListeners();
        return;
      }
  
      var id = books.indexOf(book);
      if (id == -1) {
        _selectedBookId = null;
      } else {
        _selectedBookId = id;
      }
  
      notifyListeners();
    }
  
    void clearSelectedBook() {
      _selectedBookId = null;
  
negative.code:         MaterialPage(
            key: ValueKey('BooksListPage'),
            child: BooksListScreen(
              books: _appState.allBooks,
              onTapped: _handleBookTapped,
            ),
          ),
  