             let (name, adapter) = scopes[position]
             let adaptedRow = Row(base: row, adapter: adapter)
             if let prefetch = prefetchedRows.prefetches[name] {
+                // Let the adapted row access its own prefetched rows.
+                // Use case:
+                //
+                //      let request = A.including(required: A.b.including(all: B.c))
+                //      let row = try Row.fetchOne(db, request)!
+                //      row.scopes["b"]!.prefetchedRows["cs"]
                 adaptedRow.prefetchedRows = Row.PrefetchedRowsView(prefetches: prefetch.prefetches)
             }
             return (name: name, row: adaptedRow)

    fileprivate struct Prefetch: Equatable {
        // Nil for intermediate associations
        var rows: [Row]?
        var prefetches: OrderedDictionary<String, Prefetch>
    }
    

    ///         }
    ///     }
    public struct PrefetchedRowsView: Equatable {
        // OrderedDictionary so that breadth-first search gives a consistent result
        // (we preserve the ordering of associations in the request)
        fileprivate var prefetches: OrderedDictionary<String, Prefetch> = [:]
        
        /// True if there is no prefetched associated rows.
