let a: (Int, Int) -> ClosedRange<Int> = (...) // OK
func foo<T: Comparable>(start: T, end: T, _ f: (T, T) -> ClosedRange<T>) -> ClosedRange<T> { return f(start, end) } foo(start: 1, end: 10, ...) // OK