<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def return_type(self) -> Type: """ Gives the final return type for this function. If the function takes a single argument, this is just ``self.second``. If the function takes multiple arguments and returns a basic type, this should be the final ``.second`` after following all complex types. That is the implementation here in the base class. If you have a higher-order function that returns a function itself, you need to override this method. """

        return_type = self.second
        while isinstance(return_type, ComplexType):
            return_type = return_type.second
        return return_type