     ///         }
     ///     }
     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.

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

            // Make sure we build another Row instance
            row = Row.init(impl: row.copy().impl)
            assert(row !== self)
            row.prefetchedRows = PrefetchedRowsView()
        }
        return row
    }
