 
 public extension NSURL {
     
-    func value<K: ResourceReadable, R: ResultType where K.ReadResult == R>(forResource resource: K) -> R {
+    func value<K: ResourceReadable>(forResource resource: K) -> K.ReadResult {
         let key = resource.key
         
         var value: AnyObject?

        return resource.read(value)
    }
    
    func setValue<K: ResourceWritable, V where K.InputValue == V>(value: V, forResource resource: K) -> VoidResult {
        let key = resource.key

        return flatMap(resource.write(value)) { finalValue -> VoidResult in


    // MARK: Grouped convenience
    
    static func values<K: ResourceReadable>(forResource resource: K, URLs urls: NSURL...) -> AnyResult<[K.ReadResult.Value]> {
        var results: [K.ReadResult.Value] = []
        results.reserveCapacity(urls.count)
        for url in urls {
            let nextResult = url.value(forResource: resource)
