 extension UInt64 {
     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 .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)

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 Float {
    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)
