 	}
 
 	public func dispose() {
-		guard state.tryDispose() else { return }
-
-		if let disposables = disposables.swap(nil) {
+		if state.tryDispose(), let disposables = disposables.swap(nil) {
 			for disposable in disposables {
 				disposable.dispose()
 			}

		}

		func dispose() {
			guard state.tryDispose() else { return }
			action?()
			action = nil
		}
	}


	}

	public func dispose() {
		if state.tryDispose() {
			_inner.swap(nil)?.dispose()
		}
	}

	deinit {
