Add sub-typing for function types