type Fruit = "apple" | "orange" ; type Color = "red" | "orange" ; type FruitEater = ( fruit : Fruit ) => number ; type ColorConsumer = ( color : Color ) => string ; declare let f ; f ( "orange" ) ; type f_0 = ( arg : Parameters < FruitEater > [ 0 ] & Parameters < ColorConsumer > [ 0 ] ) => ReturnType < FruitEater > | ReturnType < ColorConsumer > ; type f_1 = ( arg : Fruit & Color ) => number | string ; type f_2 = ( arg : ( "apple" & "red" ) | ( "apple" & "orange" ) | ( "orange" & "red" ) | ( "orange" & "orange" ) ) => number | string ; type f_3 = ( arg : ( never ) | ( never ) | ( never ) | ( "orange" ) ) => number | string ; type f_4 = ( arg : "orange" ) => number | string ; export { } ;