             .mapError(Error.NetworkError)
             .flatMap(.Concat) { data, response -> SignalProducer<(Response, Resource), Error> in
                 let response = response as! NSHTTPURLResponse
+                let headers = response.allHeaderFields as! [String:String]
                 return SignalProducer
                     .attempt {
                         return NSJSONSerialization.deserializeJSON(data).mapError(Error.JSONDeserializationError)

    case let (.JSONDecodingError(error1), .JSONDecodingError(error2)):
        return error1 == error2
        
    case let (.APIError(statusCode1, error1), .APIError(statusCode2, error2)):
        return statusCode1 == statusCode2 && error1 == error2
        
    case (.DoesNotExist, .DoesNotExist):
        return true

        /// An error occurred while decoding JSON.
        case JSONDecodingError(DecodeError)
        
        /// A status code, response, and error that was returned from the API.
        case APIError(Int, Response, GitHubError)
        
        /// The requested object does not exist.
        case DoesNotExist
