         self = .int64(number)
     }
 
+    init(number: UInt) {
+        self = .uint(number)
+    }
+
     init(number: UInt8) {
         self = .uint8(number)
     }

extension Int32 {
    init(_ number: Number) {
        switch number {
        case .int8(let n): self.init(n)
        case .int16(let n): self.init(n)
        case .int32(let n): self.init(n)
        case .int64(let n): self.init(n)

        case .uint8(let n): self.init(n)
        case .uint16(let n): self.init(n)
        case .uint32(let n): self.init(n)

extension UInt32 {
    init(_ number: Number) {
        switch number {
        case .int(let n): self.init(n)
        case .int8(let n): self.init(n)
        case .int16(let n): self.init(n)
        case .int32(let n): self.init(n)
        case .int64(let n): self.init(n)

        case .uint(let n): self.init(n)
        case .uint8(let n): self.init(n)
        case .uint16(let n): self.init(n)
        case .uint32(let n): self.init(n)
