<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def fetch_arc_errors(self):
        '''
        Evaluates the current tree of the arc and provides a list of errors that
        the user should correct.
        '''
        error_list = []
        hnode = self.validate_first_element()
        if hnode:
            error_list.append({'hook_error': hnode})
        rnode = self.validate_last_element()
        if rnode:
            error_list.append({'reso_error': rnode})
        try:
            self.validate_generations()
        except ArcGenerationError as ag:
            error_list.append({'generation_error': str(ag)})
        milecheck = self.validate_milestones()
        if milecheck:
            error_list.append({'mseq_error': milecheck})
        return error_list