     }
 
     func testThatParserUnderstandsEmptyObjects() {
-        for s in ["{}", "  {   }  "] {
-            let result = JSONFromString(s)
+        for string in ["{}", "  {   }  "] {
+            let result = JSONFromString(string)
             switch result {
             case .Success(let value):
                 XCTAssertEqual(value, JSON.Dictionary([:]))

    }

    func testThatParserUnderstandsStringsWithoutEscapes() {
        let s = "a b c d 😀 x y z"
        let result = JSONFromString("\"\(s)\"")
        switch result {
        case .Success(let value):
            XCTAssertEqual(value, JSON.String(s))
        case .Failure(let error):
            XCTFail("Unexpected error \(error)")
        }

            ("1.0e-", JSONParser.Error.EndOfStreamUnexpected),
            ("0e1",   JSONParser.Error.EndOfStreamGarbage(offset: 1)),
        ] {
            switch JSONFromString(string) {
            case .Success:
                XCTFail("Unexpected success for \"\(string)\"")
            case .Failure(expectedError):
                break
            case .Failure(let error):
                XCTFail("Unexpected error \(error) in \(string)")
            }
        }
    }

    func testThatParserUnderstandsEmptyArrays() {
        let expect = JSON.Array([])
        for string in ["[]", "[  ]", "  [  ]  "] {
            let result = JSONFromString(string)
            switch result {
            case .Success(let value):
                XCTAssertEqual(value, expect)
