// RUN: %target-swift-frontend -emit-ir %s @discardableResult public func applyWrapped(function: Optional<(T) -> U>, to value: Optional) -> Optional { switch (function, value) { case (let .some(f), let .some(v)): return .some(f(v)) case (.none, _): return .none case (_, .none): return .none } }