         ///
         /// Prefetched rows stored in nested "to-one" associations are
         /// available, too.
+        ///
+        /// Nil is returned if the key is not available.
         public subscript(_ key: String) -> [Row]? {
             var fifo = Array(prefetches)
             while !fifo.isEmpty {

    ///     // Prints "Herman Melville"
    ///
    ///     let books: Set<Book> = row["books"]
    ///     print(books[0].title)
    ///     // Prints "Moby-Dick"
    public subscript<Record: FetchableRecord & Hashable>(_ key: String) -> Set<Record> {
        guard let rows = prefetchedRows[key] else {

        guard let scopedRow = scopesTree[scope] else {
            // Programmer error
            fatalError("missing scope `\(scope)` (row: \(self))")
        }
        guard scopedRow.containsNonNullValue else {
            // Programmer error
            fatalError("scope `\(scope)` only contains null values (row: \(self))")
        }
        return Record(row: scopedRow)
    }
