added higher order function contracts to overloaded_fun