anchor.diff:  
     @override
     AppRoutePath get currentConfiguration {
  -    final selectedBook = _appState.selectedBook;
  -    final selectedAuthor = _appState.selectedAuthor;
  +    final selectedBookId = _appState.selectedBookId;
  +    final selectedAuthorId = _appState.selectedAuthorId;
       final showAuthorsPage = _appState.showAuthorsPage;
  +
       if (showAuthorsPage) {
         return AuthorsRoutePath();
       }
  -    if (selectedAuthor != null) {
  -      return AuthorRoutePath(_appState.getAuthorId(selectedAuthor));
  -    }
  -    if (selectedBook != null) {
  -      return BookRoutePath(_appState.getBookId(selectedBook));
  -    }
  +
  +    if (selectedAuthorId != null) {
  +      return AuthorRoutePath(selectedAuthorId);
  +    }
  +
  +    if (selectedBookId != null) {
  +      return BookRoutePath(selectedBookId);
  +    }
  +
       return AppRoutePath();
     }
   
  
positive.code:           MaterialPage(
              key: ValueKey('AuthorsListPage'),
              child: AuthorsListScreen(
                authors: _appState.authors,
                onTapped: _handleAuthorTapped,
                onGoToBooksTapped: _handleGoToBooksTapped,
              ),
  
negative.code: 
  import 'package:flutter/material.dart';
  
  final List<Book> books = [
    Book('Stranger in a Strange Land', Author('Robert A. Heinlein')),
    Book('Foundation', Author('Isaac Asimov')),
    Book('Fahrenheit 451', Author('Ray Bradbury')),
  ];
  
  List<Author> get authors => [
    ...books.map((book) => book.author),
  ];
  
  void main() {
    runApp(BooksApp());
  }
  