     }
     
     private var needsRecordingSelectedRegion: Bool {
-        observedRegion == nil || lock.synchronized { !reducer._isSelectedRegionDeterministic }
+        observedRegion == nil || synchronized { !reducer._isSelectedRegionDeterministic }
     }
     
     private func recordingSelectedRegionIfNeeded<T>(

    /// Fetch an observed value, and moves the reducer forward.
    func fetchValue(_ db: Database) throws -> Reducer.Value? {
        try recordingSelectedRegionIfNeeded(db) {
            try lock.synchronized {
                try reducer.fetchAndReduce(db, requiringWriteAccess: requiresWriteAccess)
            }
        }

        } else {
            // Concurrently
            guard let writer = writer else { return }
            fetchedFuture = writer.concurrentRead { db in try self.synchronized { try self.reducer._fetch(db) } }
        }
        
        // 2. Reduce
