I understand that should be used in the case of the same type as the return type.
Others case is not revise. Is it correct?