TBH, I don't think it is so bad that it requires a new syntax. But I am not strongly against it either. What I would like to add here is that if we will go with the replacement:Callable[[X, Y], Z] becomes (X, Y) -> Zthen we should also go withUnion[X, Y] becomes X | YTuple[X, Y] becomes (X, Y)