     /// from all tables.
     public static let fullDatabase = DatabaseRegion(tableRegions: nil)
     
-    /// The empty database region
+    /// Creates an empty database region.
     public init() {
         self.init(tableRegions: [:])
     }

///     |x|x|x|x|   |x| | | |   | | | | |   |x|x| |x|   | | | | |
///     |x|x|x|x|   |x| | | |   | | | | |   | | | | |   | | | | |
///
/// You don't create a database region directly. Instead, you use one of
/// those methods:
///
/// - `SelectStatement.databaseRegion`:
///
///         let statement = db.makeSelectStatement(sql: "SELECT name, score FROM player")
///         print(statement.databaseRegion)
///         // prints "player(name,score)"
///
/// - `FetchRequest.databaseRegion(_:)`
///
///         let request = Player.filter(key: 1)
///         try print(request.databaseRegion(db))
///         // prints "player(*)[1]"
///
/// Database regions returned by requests can be more precise than regions
/// returned by select statements. Especially, regions returned by statements
/// don't know about rowids:
///
///     // A plain statement
///     let statement = db.makeSelectStatement(sql: "SELECT * FROM player WHERE id = 1")
///     statement.databaseRegion       // "player(*)"
///
///     // A query interface request that executes the same statement:
///     let request = Player.filter(key: 1)
///     try request.databaseRegion(db) // "player(*)[1]"
public struct DatabaseRegion: CustomStringConvertible, Equatable {
    private let tableRegions: [String: TableRegion]?
    private init(tableRegions: [String: TableRegion]?) {

/// `observes(eventsOfKind:)` and `databaseDidChange(with:)` methods.
///
/// A database region is the union of any number of "table regions", which can
/// cover a full table, or the combination of columns and rows:
///
///     |Table1 |   |Table2 |   |Table3 |   |Table4 |   |Table5 |
///     |-------|   |-------|   |-------|   |-------|   |-------|
