// RUN: %target-swift-frontend %s -verify -emit-sil -o /dev/null struct R { var str: String? } func map(e: (A) -> B) -> () -> R { fatalError() } func map(_ : (A) -> B) -> (A?) -> B? { fatalError() } infix operator |> func |> (g: A, h: (A) -> B) -> B { h(g) } infix operator ^^^ func ^^^ (j: ((B) -> C) -> A, k: String) {} extension WritableKeyPath { static func ^^^ (l: WritableKeyPath, m: Value) -> (Root) -> Root { fatalError() } } func foo(_ s: String, _ rt: R?) -> String? { return rt.flatMap { _ in rt |> map(\.str ^^^ s) } .flatMap(\.str) }