     }
     
     func trash() -> ObjectResult<NSURL> {
-        var newURL: NSURL?
-        var error: NSError?
-        if NSFileManager.currentManager.trashItemAtURL(self, resultingItemURL: &newURL, error: &error) {
-            return success(newURL!)
-        } else {
-            return failure(error!)
-        }
+        return try(trash)
     }
     
     // MARK: Directory enumeration

        return NSFileManager.currentManager.moveItemAtURL(self, toURL: url, error: error)
    }
    
    private func link(toURL url: NSURL)(error: NSErrorPointer) -> Bool {
        return NSFileManager.currentManager.linkItemAtURL(self, toURL: url, error: error)
    }

        return NSFileManager.currentManager.removeItemAtURL(self, error: error)
    }
    
    private func trash(resultingItemURL: AutoreleasingUnsafeMutablePointer<NSURL?>, error: NSErrorPointer) -> Bool {
        return NSFileManager.currentManager.trashItemAtURL(self, resultingItemURL: resultingItemURL, error: error)
    }

    func makeDirectory(createIntermediates: Bool = true) -> VoidResult {
        return try(makeDirectory(createIntermediates: createIntermediates))
    }
