Allow generic functions can be overloaded
Allow comparison between Optional and nil
Tuple/function type specilization