 
         // OK, so it failed, raise a new error with all the useful metadata
         let stderrData = stdout.fileHandleForReading.readDataToEndOfFile()
-        let stderrString = String(data: stderrData, encoding: String.Encoding.utf8)!
+        let stderrString = String(data: stderrData, encoding: .utf8)!
 
         throw SpawnError.commandFailed(command: command,
                                        exitCode: task.terminationStatus,

        task.waitUntilExit()

        let data = pipe.fileHandleForReading.readDataToEndOfFile()
        return String(data: data, encoding: String.Encoding.utf8)!.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
    }

    // Similar to above, but can throw, and throws with most of

    private func makeTask(for command: String,
                          with arguments: [String],
                          environmentVariables: [String: String]) -> Process {
        let script = "\(command) \(arguments.joined(separator: " "))"
        let processEnv = ProcessInfo.processInfo.environment
        let task = Process()
        task.launchPath = processEnv["SHELL"]
