Calling function does not know what type its going to receive from a function, hence the function that returns an unknown type, is of Opaque type function. On the other hand, Calling function decides the type it would want to send as a parameter to another function, this another function…