       }
    }
    
-   private func _fetch(id: ConductionResourceFetchID) {
+   private func _fetch(id: ConductionResourceTaskID) {
       guard let fetchBlock = fetchBlock else {
-         directTransition(newState: .processing(id: ConductionResourceFetchID(), priority: _priority(), input: nil))
+         directTransition(newState: .processing(id: ConductionResourceTaskID(), priority: _priority(), input: nil))
          return
       }
       

         _getBlocks = _getBlocks.filter { $0.id != observer }
         _getBlocks.append((id: observer, priority: priority ?? defaultPriority, block: completion))
         switch state {
         case .empty: directTransition(newState: .fetching(id: ConductionResourceFetchID(), priority: _priority()))
         case .fetching, .processing: _updatePriority(oldPriority: oldPriority)
         default: break
         }


public enum ConductionResourceState<Input, Resource> {
   case empty
   case fetching(id: ConductionResourceTaskID, priority: Int?)
   case processing(id: ConductionResourceTaskID, priority: Int?, input: Input?)
   case fetched(Resource?)
   case invalid(Resource?)
}

public typealias ConductionResourceObserver = UUID

public typealias ConductionResourceTaskID = UUID

public typealias ConductionResourceFetchBlock<Input, Resource> = (_ state: ConductionResourceState<Input, Resource>, _ completion: @escaping (_ fetchedInput: Input?) -> Void) -> Void

