 
     @inlinable public init(from decoder: Decoder) throws {
         var errors: [Error] = []
+        do { self = try .v1(T1(from: decoder)); return } catch { errors.append(error) }
+        do { self = try .v2(T2(from: decoder)); return } catch { errors.append(error) }
+        do { self = try .v3(T3(from: decoder)); return } catch { errors.append(error) }
+        do { self = try .v4(T4(from: decoder)); return } catch { errors.append(error) }
+        do { self = try .v5(T5(from: decoder)); return } catch { errors.append(error) }
+        do { self = try .v6(T6(from: decoder)); return } catch { errors.append(error) }
         do { self = try .v7(T7(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v6(T6(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v5(T5(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v4(T4(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v3(T3(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v2(T2(from: decoder)); return } catch { errors.append(error) }
-        do { self = try .v1(T1(from: decoder)); return } catch { errors.append(error) }
         throw ChoiceDecodingError(errors: errors)
     }
 }


    @inlinable public init(from decoder: Decoder) throws {
        var errors: [Error] = []
        do { self = try .v4(T4(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v3(T3(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v2(T2(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v1(T1(from: decoder)); return } catch { errors.append(error) }
        throw ChoiceDecodingError(errors: errors)
    }
}


    @inlinable public init(from decoder: Decoder) throws {
        var errors: [Error] = []
        do { self = try .v1(T1(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v2(T2(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v3(T3(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v4(T4(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v5(T5(from: decoder)); return } catch { errors.append(error) }
        do { self = try .v6(T6(from: decoder)); return } catch { errors.append(error) }
        throw ChoiceDecodingError(errors: errors)
    }
}
