     init(_ t5: T5)
     func infer() -> T5?
 }
+
+/// Construct a `OneOf5Type` from T5.
+@inlinable public func oneOf<T: OneOf5Type>(_ value: T.T5) -> T { .init(value) }
 
 public extension OneOf5Type {
     @inlinable var v5: T5? { get { return infer() } set { if let newValue = newValue { self = Self.init(newValue)} } }

    init(_ t7: T7)
    func infer() -> T7?
}

public extension OneOf7Type {
    @inlinable var v7: T7? { get { return infer() } set { if let newValue = newValue { self = Self.init(newValue)} } }

    init(_ t8: T8)
    func infer() -> T8?
}

/// Construct a `OneOf8Type` from T8.
@inlinable public func oneOf<T: OneOf8Type>(_ value: T.T8) -> T { .init(value) }

public extension OneOf8Type {
    @inlinable var v8: T8? { get { return infer() } set { if let newValue = newValue { self = Self.init(newValue)} } }
