My suggestion is that -> would be the conditional arrow that can be both pure or impure. That would make @pure func foo(_ f: @pure (Int) -> Int) -> Int equivalent to func foo(_ f: (Int) ~> Int) -> Int. Plus depending on the implementation the compiler might be able to help and tell you that foo could use ~> instead.
-- Adrian Zubarev Sent with Airmail Am 17. Februar 2017 um 19:25:41, Anton Zhilin (antonyzhi...@gmail.com) schrieb: Just let @pure func foo(_ f: (Int) -> Int) -> Int be the same as those two combined: @pure func foo(_ f: @pure (Int) -> Int) -> Int func foo(_ f: (Int) -> Int) -> Int No need for anything like “re-pure” or ≃>.
_______________________________________________ swift-evolution mailing list swift-evolution@swift.org https://lists.swift.org/mailman/listinfo/swift-evolution