I'm having understanding this concept. When I write,
typedef PV(int) {.........}
PV hello(int, int){........}
I don't see how the function could be a type basically. Is it calling that function everytime? Or is hello now another name? If so, I don't see how it could have a different parameter list.