     /// avoid memberwise retain/releases when `Request is passed around.
     private class Container {
         var resource: Resource
-        var urlString: String? // memoized absoluteString
-        var processor: AnyProcessor?
+        var _urlString: String? // memoized absoluteString
+        var processor: AnyProcessor? {
+            didSet { _isUsingDefaultProcessor = false }
+        }
+        private var _isUsingDefaultProcessor = true
         var memoryCacheOptions = MemoryCacheOptions()
         var cacheKey: AnyHashable?
         var loadKey: AnyHashable?

        /// Creates a copy.
        init(container ref: Container) {
            self.resource = ref.resource
            self.urlString = ref.urlString
            self.processor = ref.processor
            self.memoryCacheOptions = ref.memoryCacheOptions
            self.cacheKey = ref.cacheKey
            self.loadKey = ref.loadKey

                    && a.allowsCellularAccess == b.allowsCellularAccess
            }
            let lhs = lhs.request, rhs = rhs.request
            return lhs._ref._urlString == rhs._ref._urlString
                && isEqual(lhs.urlRequest, rhs.urlRequest)
                && lhs._ref.isEqualProcessor(to: rhs._ref)
        }
    }
}
