 
 import Foundation
 
-import iAsync_async
 import iAsync_utils
 import iAsync_reactiveKit
 

            dataLoader        : dataLoader,
            loadDataIdentifier: loadDataIdentifier)

        let loader = bindTrySequenceOfAsyncs(loadCachedData, dataLoaderBinder)
        return asyncToStream(loader).observe(observer: observer)
    }

    let analyzer = { (response: (DataRequestContext<DataLoadContext>, NSData)) -> AsyncStream<Result, AnyObject, NSError> in


        let cacheBinder = { (analyzedData: Result) -> AsyncStream<Result, AnyObject, NSError> in

            let resultLoader = AsyncStream<Result, AnyObject, NSError>.succeeded(with: analyzedData)

            switch response.0 {
            case .Outside:
                let loader = cache.loaderToSetData(response.1, forKey:cacheKey)
                return loader.flatMap(.Latest, transform: { _ in resultLoader })
            case .CacheUpdateDate:
                return resultLoader
            }
        }

