 #if arch(x86_64) || arch(arm64) || arch(s390x) || arch(powerpc64) || arch(powerpc64le)
     @usableFromInline
     internal typealias HalfInt = Int32
-#elseif arch(i386) || arch(arm)
+#elseif arch(i386) || arch(arm) || arch(arm64_32)
     @usableFromInline
     internal typealias HalfInt = Int16
+#else
+    #error ("Unsupported architecture: a definition of half of the pointer sized Int needs to be defined for this architecture")
 #endif
 
     @usableFromInline

        @usableFromInline
        typealias Buffer = (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8,
                            UInt8, UInt8, UInt8, UInt8, UInt8, UInt8) //len  //enum
        @usableFromInline
        var bytes: Buffer
#elseif arch(i386) || arch(arm)
        @usableFromInline
        typealias Buffer = (UInt8, UInt8, UInt8, UInt8,
                            UInt8, UInt8) //len  //enum
        @usableFromInline
        var bytes: Buffer
#endif
        @usableFromInline
        var length: UInt8


            assert(count <= MemoryLayout<Buffer>.size)
#if arch(x86_64) || arch(arm64) || arch(s390x) || arch(powerpc64) || arch(powerpc64le)
            bytes = (UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0), UInt8(0))
#elseif arch(i386) || arch(arm) || arch(arm64_32)
            bytes = (UInt8(0), UInt8(0), UInt8(0), UInt8(0),
                     UInt8(0), UInt8(0))
#else
    #error ("Unsupported architecture: initialization for Buffer is required for this architecture")
#endif
            length = UInt8(count)
        }
