はじめに

Call can throw, but it is not marked with 'try' and the error is not handled
の質問に対して、自分自身で下記の回答をしました。
https://ja.stackoverflow.com/a/56880/9008

オープンソース

自分自身で回答しておきながら、よくわからない部分があるのですが、
オープンソースを見てみるとよくあるテクニック(イディオム)のように思えてきました。

SwiftyUserDefaults(引用)

https://github.com/radex/SwiftyUserDefaults/blob/abcfe895e3119b051918fa19b8d8e009cdc44cce/Sources/OptionalType.swift

public protocol OptionalType {
    associatedtype Wrapped
    var wrapped: Wrapped? { get }
}

extension Optional: OptionalType {

    public var wrapped: Wrapped? {
        return self
    }
}

Realm(引用)

https://github.com/realm/realm-cocoa/blob/930eb761c418cdd9babf2e599fb79ff22e371ffb/RealmSwift/RealmCollection.swift

/// :nodoc:
public protocol OptionalProtocol {
    associatedtype Wrapped
    /// :nodoc:
    // swiftlint:disable:next identifier_name
    func _rlmInferWrappedType() -> Wrapped
}

extension Optional: OptionalProtocol {
    /// :nodoc:
    // swiftlint:disable:next identifier_name
    public func _rlmInferWrappedType() -> Wrapped { return self! }
}

質問

この OptionalTypeOptionalProtocol はどういったテクニックなのでしょうか?

特に
associatedtype Wrapped

Swift自体の
public enum Optional<Wrapped> : ExpressibleByNilLiteral
<Wrapped> の関係性について教えて下さい。