 
     func testDecoding_withArrayOfDictionary_ofBoolToCereal() {
         do {
-            let subject = try CerealDecoder(encodedString: "k,2:hi:a,117:m,53:b,1:t:c,15:k,3:foo:s,3:bar:b,1:f:c,15:k,3:foo:s,3:baz:m,53:b,1:t:c,15:k,3:foo:s,3:foo:b,1:f:c,15:k,3:foo:s,3:oof")
+            let subject = try CerealDecoder(encodedBytes: [11,19,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,2,0,0,0,0,0,0,0,104,105,10,246,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,10,106,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,6,1,0,0,0,0,0,0,0,0,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,122,9,6,1,0,0,0,0,0,0,0,1,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,114,10,106,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,6,1,0,0,0,0,0,0,0,0,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,111,111,102,9,6,1,0,0,0,0,0,0,0,1,11,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,102,111,111])
             if let elements: [[Bool: TestCerealType]] = try subject.decodeCereal("hi") {
                 guard let first: [Bool: TestCerealType] = elements.first else {
                     XCTFail("Array wasn't decoded correctly")


    func testDecoding_withArrayOfDictionary_ofBoolToInt64() {
        do {
            let subject = try CerealDecoder(encodedString: "k,2:hi:a,57:m,23:b,1:t:z,1:1:b,1:f:z,1:3:m,23:b,1:f:z,1:5:b,1:t:z,1:7")
            if let elements: [[Bool: Int64]] = try subject.decode("hi") {
                guard let first: [Bool: Int64] = elements.first else {
                    XCTFail("Array wasn't decoded correctly")

    func testDecoding_withArrayOfDictionary_ofDoubleToProtocolIdentifyingCereal() {
        Cereal.register(TestIdentifyingCerealType.self)
        do {
            let subject = try CerealDecoder(encodedBytes: [11,99,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,2,0,0,0,0,0,0,0,104,105,10,70,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,10,146,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,4,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,1,4,0,0,0,0,0,0,0,116,105,99,116,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,114,9,4,8,0,0,0,0,0,0,0,154,153,153,153,153,153,201,63,12,1,4,0,0,0,0,0,0,0,116,105,99,116,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,98,97,122,10,146,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,9,4,8,0,0,0,0,0,0,0,154,153,153,153,153,153,217,63,12,1,4,0,0,0,0,0,0,0,116,105,99,116,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,102,111,111,9,4,8,0,0,0,0,0,0,0,51,51,51,51,51,51,227,63,12,1,4,0,0,0,0,0,0,0,116,105,99,116,25,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,9,1,3,0,0,0,0,0,0,0,102,111,111,1,3,0,0,0,0,0,0,0,111,111,102])
            if let elements: [[Double: IdentifyingCerealType]] = try subject.decodeIdentifyingCerealArray("hi") {
                guard let first = elements.first as? [Double: Fooable] else {
                    XCTFail("Array wasn't decoded correctly")
