 
 private func Verify(array: [Any], againstArray expectedArray: [Any]) throws {
     if array.count != expectedArray.count {
-        throw VerificationError.CountMismatch
+        throw VerificationError.countMismatch
     }
     
     for (index, expectedValue) in expectedArray.enumerated() {


private func Verify(dictionary: WrappedDictionary, againstDictionary expectedDictionary: WrappedDictionary) throws {
    if dictionary.count != expectedDictionary.count {
        throw VerificationError.CountMismatch
    }
    
    for (key, expectedValue) in expectedDictionary {
        guard let actualValue = dictionary[key] else {
            throw VerificationError.MissingValueForKey(key)
        }
        
        if let expectedNestedDictionary = expectedValue as? WrappedDictionary {

// MARK: - Utilities

private enum VerificationError: Error {
    case countMismatch
    case cannotVerifyValue(Any)
    case missingValueForKey(String)
    case valueMismatchBetween(Any, Any)
}

private protocol Verifiable {
