         let peopleArray = json["people"].array.bind { collectResults(map($0, Person.createWithJSON)) }
         switch peopleArray {
         case .Success(let box):
-            box.value.map { XCTAssertTrue($0.name != "", "There should be a name.") }
-        case .Failure(let error):
-            XCTAssert(false, "There should be no failure.")
+            for person in box.value {
+                XCTAssertNotEqual(person.name, "", "There should be a name.")
+            }
+        case .Failure(let error):
+            XCTFail("There should be no failure.")
         }
     }
 

                XCTAssertNotNil(z.int, "The `Int` should not be `nil`.")
            }
        case .Failure(let error):
            XCTAssert(false, "There should be no `error`.")
        }
    }


        let data = createData()
        let json = JSON.createJSONFrom(data!)
        let people = splitResult(json["people"].array, Person.createWithJSON)
        XCTAssertGreaterThan(people.successes.count, 0, "There should be people in `successes`.")
        XCTAssertEqual(people.failures.count, 0, "There should be no errors in `failures`.")
    }
    
    func testSplitResultCanGatherErrorsInFailures() {
        let data = createData()
        let json = JSON.createJSONFrom(data!)
        let peopl = splitResult(json["peopl"].array, Person.createWithJSON)
        XCTAssertEqual(peopl.successes.count, 0, "There should be no people in `successes`.")
        XCTAssertGreaterThan(peopl.failures.count, 0, "There should be errors in `failures`.")
    }
    
    func testThatSubscriptingJSONWorksForTopLevelObject() {
